全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2910 1
2017-06-20
   在平时变量衍生的工作中,我们可能会遇到需要求变量中连续为某个值的个数,比如求连续为0的个数,这里我们利用sas的first.var函数实现,代码如下:

DATA WORK.TEST;
INPUT CUST_ID MONTH NUM @@;
CARDS;
1 1 2
1 2 0
1 3 1
1 4 0
1 5 0
1 6 0
1 7 3
1 8 2
1 9 0
2 1 0
2 2 0
2 3 1
2 4 2
2 5 0
2 6 0
2 7 0
2 8 0
2 9 3
;
DATA WORK.TEST1;
SET WORK.TEST;
/*确定分组变量,NOTSORTED分组不排序,否则必须先排序*/
BY CUST_ID NUM NOTSORTED;
/*如果是该组的第一个值,标识为1,否则累计个数*/
IF FIRST.NUM = 1 THEN DIFF = 1;
ELSE DIFF+1;
run;

其中,分组变量为CUST_ID和NUM,first.num表示在num分组中,如果是第一个则该值为1,否则为0。这里我们的目的是求num中连续为0的最大个数, 结合此处生成的diff变量,设定num=0,用max函数即可求得结果。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-6-20 12:11:21
不错的分享,sas相较于stata运行的更多,更系统
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群