SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 825|回复: 3
打印 上一主题 下一主题

DATA步:一行数据中找出不重复的观测个数

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-4-6 18:18:59 | 只看该作者

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。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-4-6 20:45:08 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-4-6 21:40:33 | 只看该作者

Re: DATA步:一行数据中找出不重复的观测个数

真是太感谢hopewell,太感谢~~为这问题忙了一下午,看来学的东西还是很多呀
回复 支持 反对

使用道具 举报

0

主题

0

帖子

2

积分

新手上路

Rank: 1

积分
2
地板
发表于 2010-4-8 11:17:08 | 只看该作者

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]
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-3-3 12:32 , Processed in 0.179823 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表