数据分析与SAS学习笔记3

SAS在最新的展示图,表现力比较丰富。
SAS的处理流程:
数据步 过程步:

ETL是数据分析非常重要的步骤。70%-90%花在收集数据以及整理数据,数据分析数据的时间不是很多的。
一个完整的数据步和过程步:

数据步基本语句总结:
DATA
INPUT (难度最大)
DATALINES(CARDS)和ATALINES
LENGTH
LABEL
LOSTCARD
INFORMAT/FORMAT
MISSING
OPTIONS
DATA语句:
格式:DATA <数据集名> <选项>
常用选项:label=为数据集提供标记;DROP=列出不包括在数据集中的变量
缺省逻辑库为work
同一次会话过程中,可以有多个DATA语句创建多个数据集。最后建立的为当前数据集
如果分析工作不需要建立数据集,DATA语句中的数据集名可以用_NULL_
说明:
1)sas关闭,临时数据库work中的数据集会被删除掉;那么就要创建永久数据集;
DATA例子:当前数据集
data student;
input num $ name $ sex $;
datalines;
060101 zhangsan f
060102 liling m
060201 liufeng fdata score;
input num $ phy math engl;
datalines;
060101 89 90 77
060102 92 70 88
060201 80 84 75proc print;
/* proc print data=student; */
run;
代码说明:
1)input语句 定义内置数据中定义三个变量,后面跟$,表示读入的字符的变量。
2)datalines:相当于cards,用来定义内置数据。
3)proc print; 输出的是哪个数据集呢?默认是输出最后的数据集,就是当前数据集score;
4)proc print data=student; 指定数据集student输出。
DATA 例子:空数据集
data _null_;
a = sin(3.14159/4);
put a;
run;
代码说明:
1)定义一个变量a,值是正弦函数;
2)put a: /* 显示a的值 */
3)data _null_: 定义空的数据集,产生的变量也不会放到数据集,在硬盘中不会产生任何东西。
DATA例子:永久数据集
libname ep 'e:\saslx';
data ep.students;
input num $ name $ sex $ h w;
datalines;
020801 zhangling f 1.56 47.1
020802 zhaohua m 1.72 61.5
030813 wangqang m 1.69 64.5
030824 liuli f 1.58 53.6
030815 shidong f 1.60 48.0
;proc print;
run;建立永久数据集后, 下次可以直接调用
libname ep 'e:\saslx';
proc print data=ep.students;
代码说明:
1)创建逻辑库ep,对应硬盘中的e盘的某目录路径;
2)指定的数据集是ep下面的students数据集;
3)然后输出;
4)下次再登录,可以输出ep.students,说明数据被永久保存在硬盘中。
INPUT语句:在数据步中最关键的部分。
用于描述输入的数据。从外部文件infile或紧跟的CARDS读入数据,赋给该语句列出的各个变量。每个列应该怎么读,它的类型是什么样的。
格式:INPUT <数据项描述>......中间用空格分开就行了。
一般认为读入的数据是数值型,除非:1 变量名后有$号,2 使用字符的输入格式表示;3 变量事先被定义成字符型;
数据中的缺项值用"." 表示。如果读入数据与数据类型不匹配,则按无效数据置为缺项值;
说明:
1)数据项描述:中间默认用空格分开就行;
2)数据中有空值,在SAS中,是用缺项值表示,缺失值。缺项值用一点来表示。
3)数据与数据类型不匹配,则为缺失值。
INPUT语句:数据项描述
方法一:列表或自由格式;
方法二:列
方法三:格式化
列表输入:
格式:INPUT 变量名 [$] ....;
对输入数据的要求:1)输入数据项之间至少被1个空格分隔;2)用句号表示缺失值;3)字符型变量缺省默认最大长度为8,除非用LENGTH、ATTRIB、INFORMAT等语句给定更长的长度;INPUT语句中列出的变量顺序要跟输入数据的顺序一致。
如果INPUT后变量数量少于输入数据中的列数,则后面的列被略去
如果输入数据前后包含空格,会被判为作为分隔符的空格
说明:
1)没有$,就是数值型,有$,就是字符型;
2)至少一个空格;列之间连在一起没有空格,INPUT就无法辨认;
3)用英文句号来表示缺失值;
4)变量的长度的重新定义;
INPUT语句:列输入:
格式: INPUT变量名[$] 开始列[-结束列];
输入值可以以任何的次序读入,而不管它们在输入记录中的位置;
字符型数据可以包含空格。全部是空格或只含一个"."的字段被解释为缺失值。
可读全部或者部分数据
DATA;
input ID $1-18 birthyear 7-10 name $ 19-29;
Age = YEAR(DATE())-birthyear;
DATALINES;
210103195909123912zhanglin
210104195007231234liuli
211110195208113421linzexu
;
proc print;
run;
代码说明:
1)这是列输入,ID是从第1个字符到第18个字符;birthyear 是从第7个字符到第10个字符,每个字符都是一列。name:就是从第19个列到第29列,就是从19个字符到29个字符;
2)AGE DATE,SAS是从60年代就有了,SQL通用语言有很多地方借鉴了SAS。
3)AGE这列是通过赋值语句产生的。
格式化输入:
格式:INPUT变量名 <修饰符> 输入格式....;
输入格式例子:INPUT name $10. birthday mmddyy10. weight 4.1; (解释)
说明:10. 是输入格式。mmddyy10. 表示的是10位的mmddyy格式。4.1 数字有4位这么长,保留小数点1位。
DATA days;
INPUT num $3. name $14. birthday mmddyy8. weight 4.1;
DATALINES;
081ZHANGLIN 7-21-86 60.5
082ZHAOHUA 10/30/86640
083WANGQANG 06 19 8659.5
084LIULI 03 07 8763
;
proc print;
run;
数据中的年月日之间应用特殊符号或空格隔开。格式化输入时,数据项不再以空格作为结束标志,而是由读指针按给出的格式长度移动,依次读数据项。数据前后的空格也要计算在内。


1)我们看到时间显示比较特别;birthday不是我们能认识的时间,直观看起来从某年某月某日的天数。mysql中是从1970年开始进行的。
2)weight:640,读出来的是64.0,SAS是先把小数点后一位先读出来;63,SAS先把3先作为小数点后面读出来。

FORMAT语句的使用。是worddate格式显示的。
INPUT语句:格式列表
例子:
input(score1-score5)(4. 4. 4. 4. 4.);
input(score1-score5)(4.);
input(name score1-score5)($10. 5*4.);
代码说明:
1)score1是数值型,4位;
2)第二行,4. 表示所有的变量都是4位宽;
3)第三行:$10. 表示10个字符长,5*4. 表示5个变量全部都是4位。
相关文章:
数据分析与SAS学习笔记3
SAS在最新的展示图,表现力比较丰富。 SAS的处理流程: 数据步 过程步: ETL是数据分析非常重要的步骤。70%-90%花在收集数据以及整理数据,数据分析数据的时间不是很多的。 一个完整的数据步和过程步: 数据步基本语句总…...
天干地支蓝桥杯国赛
题目 分析 蓝桥杯国赛2020简单模拟题,你敢信,就是弄两个字符串数组。重点在于知道0000年是从哪个天干和地支开始的。 代码 #include <iostream> using namespace std;int year;int main() {cin >> year;string tiangan[10] {"geng&…...
Source lnsight工具的简单使用
多文件编程推荐用Source lnsight工具来进行编写 一、Source lnsight工具的简单使用 1、在桌面上新建一个文件夹factory,在文件夹里新建一个cat.c文件和si文件夹 2、打开Source lnsight工具,点击上方Project--->New Project 3、把文件夹factory中si文…...
100个变态的软件测试面试题及答案!——看完变态面试官对你竖起大拇指!
【纯干货!!!】花费了整整3天,整理出来的全网最实用软件测试面试大全,一共30道题目答案的纯干货,希望大家多多支持,建议 点赞!!收藏!!长文警告&…...
Windows保护机制GS:原理及SEH异常处理突破
前言 本次文章只用于技术讨论,学习,切勿用于非法用途,用于非法用途与本人无关! 所有环境均为本地环境分析,且在本机进行学习。 GS机制并没有对SEH提供保护,换句话说我们可以通过攻击程序的异常处理达到绕…...
大彩 串口屏
资料下载 视频 屏幕程序创建 创建 主界面设置 实现按钮和文本的添加,实现画面的切换 下面注释4有点问题,切换画面还是会下传指令集,只是无法在软件中进行指令集的设置了 按钮界面 首先第一步同上添加背景图片,然后添加…...
安装 cplex 求解器
安装 cplex 求解器 安装 cplex 求解器和python-docplexcplex 安装matlab 用户安装 cplexpython 版本安装 cplex 求解器和python-docplex cplex 安装 cplex 是解决优化问题的一个工具箱,用来线性规划、混合整数规划和二次规划的高性能数学规划求解器。可以理解成&a…...
DPR-34 AC22V【双位置继电器】
系列型号: DPR-20双位置继电器;DPR-31双位置继电器; DPR-32双位置继电器;DPR-33双位置继电器; DPR-34双位置继电器;DPR-35双位置继电器; DPR-11双位置继电器;DPR-12双位置继电器&…...
Ubuntu16.04搭建Fabric1.4环境
一、换源 为了提高下载速度,将ubuntu的源改成国内的源(推荐阿里云源和清华源) apt源保存在 /etc/apt/sources.list / 代表根目录 /etc 这个文件夹几乎放置了系统的所有配置文件 1.备份 sudo cp /etc/apt/sources.list sources_backup.l…...
【JavaScript】深度剖析prototype与__proto__到底是什么以及他们的关系
一个对象的 __proto__ 指向的是这个对象的构造函数的 prototype。 prototype 是什么 prototype 是函数的属性,是一个继承自 Object 的对象,默认的 prototype 只有一个属性,其中包含 constructor,指向当前函数自身。 Ctor.proto…...
css选择器
目录1、基本选择器(1)id选择器(2)类选择器(3)标签选择器(4)逗号选择器(5)*选择器(通配符选择器)2、包含选择器(1ÿ…...
MyBatis详解2——增删改查操作
一、SpringBoot单元测试 1.1什么是单元测试 单元测试是指对软件中的最小测试单元进行检查和验证的过程。 执行单元测试就是为了证明某段代码的执行结果是否符合我们的预期。如果测试通过则是符合预期,否则测试失败。 1.2单元测试的好处 1.单元测试不用启动Tomca…...
最大连续子列和
给定一个数组,求它的最大连续子列和。这个问题有四种解法。 1、暴力循环(O(n^3))分析这个问题,既然是子列,那么它最长为n,最短为1。要想求和我们一般需要知道这个子列的左端下标和右端下标,再求这个子列的和。最简单的…...
线性基 学习笔记
什么是线性基? 先来回顾一下向量空间中的基。这个基代表着空间的一个极大线性无关子集,组中向量线性无关,且空间中的任意一个向量都可以唯一地由基中的向量来表示 那么回到线性基,它其实就类似于是一个向量空间的基 我们考虑一…...
算法-回溯算法-组合问题
77. 组合https://leetcode.cn/problems/combinations/ 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n 4, k 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,…...
ABAP中的Null值与space 以及 BW中ADSO的Key值
写出来怪丢人,到现在还没搞懂这个。 在BW中创建ADSO,定义Key字段。可以看到ADSO表的定义中,所有的Key和Data属性如下: 所有的key会有关键字key打头,所有字段都有not null. 但是并不是有个字段是blank空的就不能更新进…...
JavaScript库之Lodash常用方法
Lodash 中文文档https://www.lodashjs.com/docs/lodash.omit/以下总结了在项目中常用的方法,其他的慢慢更新语言:cloneDeep这个方法类似_.clone,除了它会递归拷贝 value。(注:也叫深拷贝)参数value (*): 要…...
Kotlin新手教程二(Kotlin基本数据类型及基础语法)
一、基本数据类型 1.数字 由于Kotlin支持类型推断,所以在使用时若超出Int的范围则会被认定为其它类型;若需要显式指定Long型值,则需要在值后添加L后缀。 2.浮点数 3.比较两个数( 和 ) Kotlin 中没有基础数据类型&a…...
git idea创建新分支,获取/合并主支代码的2个方法
其他sql格式也在更新中,可直接查看这个系列,要是没有你需要的格式,可在评论或私信我 个人目录 获取主支代码的2个方法1,创建一个分支,获取主支的所有代码(场景:我需要一个自己的分支进行编写模…...
CF1714A Everyone Loves to Sleep 题解
CF1714A Everyone Loves to Sleep 题解题目链接字面描述题面翻译题目描述输入格式输出格式样例解释题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1代码实现题目 链接 https://www.luogu.com.cn/problem/CF1714A 字面描述 题面翻译 题目描述 Vlad和其他人一样&am…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
