SAS中文论坛
标题:
DATA步:一行数据中找出不重复的观测个数
[打印本页]
作者:
shiyiming
时间:
2010-4-6 18:18
标题:
DATA步:一行数据中找出不重复的观测个数
大家好,请问高手这么一个问题,
我的数据是这样的:每行7个数
2 5 9 10 20 36 45
14 17 23 17 26 20 21
10 10 12 12 17 32 56
问题是利用data步写出一个新变量count,第一行数据由于各个数值不同,因此为7,第二行数据有一对17,因此为6,而第三行数据有一对10和12,因此值为5。
作者:
shiyiming
时间:
2010-4-6 20:45
标题:
Re: DATA步:一行数据中找出不重复的观测个数
[code:35fhnso8]data raw;
input var1-var7;
array arr{*} var1-var7;
array temp{7} _temporary_;
do count=1 to dim(arr);
temp(count)=arr(count);
end;
call sortn(of temp(*));
do count=1 to dim(temp)-1;
temp(count)=ifn(temp(count+1)-temp(count),1,.);
end;
count=n(of temp(*));
datalines;
2 5 9 10 20 36 45
14 17 23 17 26 20 21
10 10 12 12 17 32 56
;[/code:35fhnso8]
作者:
shiyiming
时间:
2010-4-6 21:40
标题:
Re: DATA步:一行数据中找出不重复的观测个数
真是太感谢hopewell,太感谢~~为这问题忙了一下午,看来学的东西还是很多呀
作者:
Qiong
时间:
2010-4-8 11:17
标题:
Re: DATA步:一行数据中找出不重复的观测个数
恶搞版
[code:1wxdyt3y]data v;
input var1-var7;
cards;
2 5 9 10 20 36 45
14 17 23 17 26 20 21
10 10 12 12 17 32 56
;
run;
proc transpose data=v out=_v;
run;
ods output NLevels=vv;
proc freq data=_v nlevels ;
tables _numeric_ /noprint missing ;
run;
data v;
merge vv(keep=NLevels) v ;
run;[/code:1wxdyt3y]
欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/)
Powered by Discuz! X3.2