全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1266 7
2012-07-17
即有一个变量,其值为
-1
-1
0
0
0
1
1
1
1
1

我要求最长的连续出现-1、0、1的长度。第一步应该是累积求和,想到用array,但是每次放进这个数组的量不定。又想到用lag判断再累加,总是出错,对lag的原理一直也没弄明白。现求教高手了,谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-7-17 17:17:30
我要求最长的连续出现-1、0、1的长度.是指按-1,0,1这个顺序重复出现吗
二维码

扫码加我 拉你入群

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

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

2012-7-17 17:19:04
yunqingwang 发表于 2012-7-17 17:17
我要求最长的连续出现-1、0、1的长度.是指按-1,0,1这个顺序重复出现吗
不是,就是连续-1、连续0和连续1的长度,一共3个数
表示连续赢或输的长度
二维码

扫码加我 拉你入群

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

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

2012-7-17 17:31:13
data aa;
input x;
cards;
-1
-1
0
0
0
1
1
1
1
1
;
data b;
set aa; y=lag(x);
if _n_=1 then a=1;
else if  _n_ gt 1 then do;
if x=y then a+1;
else  a=1;
end;
drop y;
run;
二维码

扫码加我 拉你入群

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

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

2012-7-17 18:02:23
复制代码
二维码

扫码加我 拉你入群

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

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

2012-7-26 10:29:29
yunqingwang 发表于 2012-7-17 17:31
data aa;
input x;
cards;
嗯,多谢,我后来用的就是你的方法
要多设置一个变量y=lag(x);
不要在表达式里直接用lag(x),而是通过y这个临时变量转一下
否则会出错
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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