小的在学完sas,python,R之后,稍微总结一下,看过的书的套路。我打个比喻:学校,是什么,由什么组成,要遵循什么法律法规,是干嘛的。那么同样,你可以这样问自己,sas是什么,要遵循什么法律法规,是干嘛的。
第一:sas是外国公认最权威的统计软件,具体它是什么,就是四个窗口。一开始,ojbk先生觉得sas界面,完全不ojbk。可是很怪,用着用着,就觉得它真的强大又美丽。说白了,美处处皆在,你少了一双发现它的眼睛。
至于后面的问题是有标准答案的:语法,变量,表达式,赋值,语句,循环语句,逻辑语句,函数。
而sas能干嘛,自己问度娘。
接下来,讲一下,sas选择观测值的常规操作。
input x y;
cards;
1 2
2 4
1 3
2 9
;
run;
data b;
set a (firstobs=2 obs=3);
proc print data=b;
run;
Obs | X | Y |
---|---|---|
1 | 2 | 4 |
2 | 1 | 3 |
当然,这里firstobs,obs都是可选参数,firstobs决定你把那一行当作第一个读入,obs决定读到那一行结果。
2.最常用的是if,where,if then else条件语句,对满足条件的观测值进行选择。
if 是可以单独使用,类似一个阀,你满足了就可以进行下一步,这里满足来自于if 后面的表达式,其返回是bool类型结果,True代表真,FALSE 代表假。
data a;
input x y;
cards;
1 2
2 4
1 3
2 9
;
run;
data b;
set a ;
if x=1;
proc print data=b;
run;
结果:
Obs | X | Y |
---|---|---|
1 | 1 | 2 |
2 | 1 | 3 |
上述你也可以把if 换成where,结果一样,但一般情况是不能同时用if where的(ojbk先生很少用)
3.if then 简单点,就是,如果满足就把你操作了。常用的有delete以及进行赋值。
data b;
set a ;
if x=1 then z=3*y;
proc print data=b;
run;
结果:
Obs | X | Y | Z |
---|---|---|---|
1 | 1 | 2 | 6 |
2 | 2 | 4 | |
3 | 1 | 3 | 9 |
4 | 2 | 9 |
当lan,你可以删除x=1的观测对象。
data b;
set a ;
if x=1 then delete;
proc print data=b;
run;
结果:
Obs | X | Y |
---|---|---|
1 | 2 | 4 |
2 | 2 | 9 |
当lan,如果if 满足 then 你要对数据观测值秀好几种不一样的操作,你可以用
then do:
操作one;
操作two;
.........
end;
我觉得完全ojbk,你们是不是只有心里脑子里是不是只有double skr呀。