全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1580 1
2011-04-13
数据格式如下:
obs
x1
x2
x3
x4
x5
x6
x7
x8
x9

1
0
0
0
0
0
1
1
0
1

2
0
1
1
1
0
0
1
1
0

3
1
0
0
1
1
1
1
0
0

4
1
1
1
0
0
1
1
1
0

5
0
1
1
0
0
0
1
1
1

......
1999
0
0
1
1
1
0
0
1
1

我需要求每一个obs连续取值为1最长的值。例如obs2连续取值为12次,一次为x2-x4,一次为x7-x8,连续取值为1最长的值为3(次),即x2-x4
向各位高手求助,程序要怎么写啊?
二维码

扫码加我 拉你入群

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

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

全部回复
2011-4-14 16:06:35
data a;
input obs        x1 x2 x3 x4        x5 x6 x7 x8        x9;
cards;
1  0  0  0  0  0  1  1  0  1
2  0  1  1  1  0  0  1  1  0
3  1  0  0  1  1  1  1  0  0
4  1  1  1  0  0  1  1  1  0
5  0  1  1  0  0  0  1  1  1
;
data b;
set a;
n=0;        m=0;
array x(9) x1-x9;
do i=1 to 9;
if x(i)=1 then n=n+1;
if n>m then m=n;
if x(i)=0 then n=0;
end;
keep x1-x9 m;
proc print;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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