楼主: 阿扁V5
2911 1

[学习分享] 变量衍生-寻找变量最大连续个数 [推广有奖]

  • 1关注
  • 43粉丝

版主

山野小子

已卖:965份资源

副教授

94%

还不是VIP/贵宾

-

威望
0
论坛币
-29467312 个
通用积分
3823.6007
学术水平
108 点
热心指数
119 点
信用等级
91 点
经验
49334 点
帖子
1168
精华
1
在线时间
651 小时
注册时间
2013-3-22
最后登录
2024-3-17

楼主
阿扁V5 学生认证  发表于 2017-6-20 12:04:31 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
   在平时变量衍生的工作中,我们可能会遇到需要求变量中连续为某个值的个数,比如求连续为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函数即可求得结果。
二维码

扫码加我 拉你入群

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

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

关键词:连续个数 sorted First cards Input

憧憬机器学习的世界!

沙发
行走的青年 在职认证  学生认证  发表于 2017-6-20 12:11:21
不错的分享,sas相较于stata运行的更多,更系统

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-15 03:33