SAS 选择观测值

小的在学完sas,python,R之后,稍微总结一下,看过的书的套路。我打个比喻:学校,是什么,由什么组成,要遵循什么法律法规,是干嘛的。那么同样,你可以这样问自己,sas是什么,要遵循什么法律法规,是干嘛的。

 第一:sas是外国公认最权威的统计软件,具体它是什么,就是四个窗口。一开始,ojbk先生觉得sas界面,完全不ojbk。可是很怪,用着用着,就觉得它真的强大又美丽。说白了,美处处皆在,你少了一双发现它的眼睛。

至于后面的问题是有标准答案的:语法,变量,表达式,赋值,语句,循环语句,逻辑语句,函数。

而sas能干嘛,自己问度娘。

接下来,讲一下,sas选择观测值的常规操作。

1.通过option选项中的firstobs以及obs进行选择。
 
data a;
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呀。 

猜你喜欢

转载自blog.csdn.net/J_sir2015/article/details/81295826
SAS