数据集整理:

目的:对数据集中的数据进行预处理,使数据更适合统计分析过程对数据格式的要求;

常见整理要求:

1)建立新的变量,衍生变量,删除某些原变量;

2)求子集;

3)矩阵和数组变换(例如转置);   # 行变列、列变行

4)排序;

5)分组;         # 类似SQL语句中的SQL;

6)数据集连接;

7)数据集合并;

8)写入文件;

用赋值语句建立衍生的新变量:

代码说明:

1)z=x+y;y=y+1; 是赋值语句;

2)@@ 表示读数据不换行;

代码说明:

1)求和,没有写S=0,因为每次循环读的话,S都会被赋值为0,反而不对;

2)从结果,我们还是很好理解S+X的意思。就是S=S+X;S+X是简写;

3)就是对X进行不断的求和;

RETAIN语句:

用于给变量赋初值,并且使变量保持其变化。

一个很好说明问题的例子:

 代码说明:

1)z=0;可以看到z的值,就是z的值;

2)s的值是x的求和;

3)关键是y初值为8,每次循环,y都会把x加上去。第二次循环的时候,retain不会被执行,y会保留上面的值。这个跟求和有区别。这个retain可以给y赋予初值。

删除变量:DROP语句:

代码说明:

1)total=sum(s1,s2,s3): 增加了一个total变量;

2)然后再将s1, s2, s3Drop掉了。

保留变量:KEEP语句:

 代码说明:

1)KEEP保存什么变量。

2)set score:上一个已有的数据集;

3)keep name mean; 需要name,mean,其他的自然被我删除掉了。

4)mean=total/3; 求平均。

条件语句:IF-THEN:循环语句,数组

条件语句:IF-THEN

 

 代码说明:

1)data score1: 目标数据集;

2)set sp.score:  是打开sp.score为当前数据集;这个数据集中包含了num/name/Computer/C_Language/English/ave

3)if语句的意思:判断ave是否大于85分,在观测行中观察进行判断,然后put语句输出语句,缺省是输出到日志窗中输出学号,名称和平均分。

条件语句:IF-THEN-ELSE:这是一个双分支的语句:

注意的是,在Then和else之后只允许使用一个语句,如果当条件成立时要执行几个语句,则应该把要同时执行的几个语句用do-end括起来。

 

 求子集IF语句:

 代码说明:

1)data child;  这是在读数据;

2)我们要产生婴儿数据集,获得月份小于12的婴儿,相当于做了一个筛选;只要写上if语句进行筛选;SAS另外还可以加where语句;where语句看朱世武的书;SQL在制定语言的标准是参考了SAS的用法。SAS的影响力是非常大的。where作为课后的阅读作业;

删除观测值:DELETE语句:

 代码说明:

1)delete是删除行;

2)do-end; put num,在日志窗中输出学号。然后删除此观测值;

循环语句:
GOTO实现的循环

DO/END循环

DO WHILE 循环

DO UNTIL 循环

在SAS中有非常丰富的循环语句用法。

GOTO语句:

 

 

代码说明:

1)goto语法是在C语言中包含,但是在编程中是要尽量避免使用goto语句。计算机科学家不要用goto语句,使得代码非常难读。

2)在K:冒号后面要有空格,才行,不然会有报错。调试的时候需要注意下。

DO/END循环:

整个循环体只产生了一个观测,它是循环结束时循环变量的取值。如果要每次循环都往数据集里输出数据,可以使用output语句。(包括前面goto实现的循环也是这样。)

代码说明:

1)这个类似其他语言的for循环语句,我们指定了循环变量,指定一个变化的范围和步长。SAS指定这些内容还是比较灵活的。

2)1 to 8 by 2: 1 3 5 7

3)16 to 18:  16 17 18

do while 循环体:

 

 

代码说明:

1)LT: 小于5。

2)put:默认输出到日志窗口。

OUTPUT语句:

 

代码说明:

1)put是直接输出到日志窗口;

2)output:就是把当前的变量往数据集中写,生成一个观测行,每次都会生成一个观测值。显示地显示的输出。

DO UNTIL循环:

 代码说明:

1)当条件成立的时候,我们就退出循环;

2)while是当条件成立的时候,就执行循环;

 

代码说明:

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐