搬运工 set

4 篇文章 1 订阅

set:Reads an observation from one or more SAS data sets。从一个存在在sas逻辑库中的数据集读取数据。

*单个数据集;

*--------创建一个数据集a,数据来源于sashelp数据库中的class数据集;
data a;*新的数据集a,数据来源于存在sas逻辑库sashelp中的class数据集。
set sashelp.class;*引用方式 逻辑库名.数据集名;
run;

set语句把存在的数据集搬到别的数据集中去。而搬过程就是sas的安检过程。class里边的每一条观测度通过安检被放到数据集a里边,一条接一条。同时,这一过程就允许我们对数据集进行一些可行的操作。

第一个关于一些指示变量(临时变量):end 、point、nobs、first.var、last.var;(临时变量会存在安检过程,但不是出现在数据集中如果需要,则需要进行赋值)

*使用end选项,标识最后一条观测,如果是最后一条则a为1,否则为0;
data a;
set sashelp.class end = a;*a为安检过程给每个观测贴的一个标签,并且要理解标识a是一些数,不是变量;
x1 = a;*要想在数据集中看到a的具体情况,可以将a赋值给一个变量,x1;
run;
proc print data = a;
run;
*---point 指示我想要把数据集的哪几条观测放到新的数据集中去,point = variable而不是point = 1,
*同时一般不与where,by等语句一起使用:
data b;
do n = 1 to 10 by 2;*n去1,3,5,7,9;
set sashelp.class point = n;*只读第1,3,5,7,9条观测;
x3 = n;
output;
end;
stop;*防止无限循环:
run;
*--nobs 记录着一共有多少条观测,一般会使用call symput创建宏变量;
data b;
set sashelp.class nobs = n;
put n = ;*使用put语句直接把n的结果在log中展示;
run;

对于一些比较乱的数据,我们希望它按照一定的顺序进行排列输出,这个时候可用by语句,在数据是有分组变量时,first.var,last.var可能会帮你快速解决问题。

*first.var or last.var中的var是by依据的变量,就是按照哪个变量对数据集进行排列,;
*使用by语句之前,先用proc sort 过程进行排序;
*新的数据集a3,以身高height变量对数据集进行排序;
proc sort data = sashelp.class;
by height;
run;

data a3;
set sashelp.class ;
by height;*以height变量进行排序;
x4 = first.height;*讲临时变量赋值给x4(已说明临时变量存在安检过程,但不写进数据集中);
run;

对于x4的解释:first代表第一条观测,first,height身高第一次出现取值为1,不是则为0,主要看第八第九条观测:身高均为

62.5,所以先出现的为1,后面的无论出现多少次度取值0(当然得先按照这个变量排序)。而前七条观测x4均为1,是因为身高取值唯一当然也是唯一值里边的第一条。同理可得,last.height,身高最后一次出现为1.这里是身高第一或者最后一次意思是:这个值内的第一次,类似你刷卡进图书馆,你一天刷了10次,那么first.var是你第一次进馆为1,其余为零。last.var是你最后一次进馆为1,前面都是0.你就是上面讲的值(同一个人做同样事情的次数,只记录第一次和最后一次)。

其余的option用得比较少,就不写了。

总结:set就是把原材料从一个厂库搬到另一个(一些观测搬到另一个数据集)。而一些临时指数变量的作用在这里把它类似交通灯和转向牌,指示数据观测的一些状态以及走向选择。

多个数据集 set的作用 下一期将会和proc sql 过程的union做一下对比.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值