SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 2855|回复: 2
打印 上一主题 下一主题

【求助】SAS关于一行中的重复观测问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2013-2-6 12:18:49 | 只看该作者

【求助】SAS关于一行中的重复观测问题

各位大侠,你们好!
马上要过年了,但有一个问题让我非常头疼,望大侠指点
有12个数字变量,现需每行中12个数据里面的不重复的数据打印出来。
例如:
data a;
input a1-a12;
cards;
5 18 22 28 29 31 12 13 19 22 28 29
1  3  4   6   7   8  5   6   7 10 12 13
.....
就是说第一行中22,28和29有重复的,所以只取其中的9个变量(5,12,13,18,19,22,28,29,31)
第二行中6和7是重复的,所以取10个变量,这个问题是在不知从何入手,望大家帮忙。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2013-2-7 20:38:10 | 只看该作者

Re: 【求助】SAS关于一行中的重复观测问题

[code:1f56hdsu]data a;
input a1-a12;
cards;
5 18 22 28 29 31 12 13 19 22 28 29
1 3 4 6 7 8 5 6 7 10 12 13
;
run;

data aa;
  set a;
  array a a1-a12;
  array aa aa1-aa12;
  s=0;
  do i=1 to 12;
     do j=1 to i-1;
            if a{i}=a{j} then s=1;
         end;
         if s=0 then aa{i}=a{i};
         s=0;
  end;
run;[/code:1f56hdsu]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2013-2-10 16:23:57 | 只看该作者

Re: 【求助】SAS关于一行中的重复观测问题

[code:ukli15y5]
data a;
input a1-a12;
cards;
5 18 22 28 29 31 12 13 19 22 28 29
1 3 4 6 7 8 5 6 7 10 12 13
;

data _null_;
  set a end=last nobs=tot;
  if last then call symput("tot",tot);
run;

proc transpose data=a out=b(drop=_NAME_);
run;

%macro nodupvar;

  %local i;
  %do i=1 %to &tot.;
      data c;
        set b(keep=col1);
      run;

      proc sort data=c out=d nodupkey;
        by col1;
      run;

      data _null_;
        set d end=last nobs=num;
        if last then call symput("num_of_&i.th_row",num);
      run;
  %end;

  %put _user_;

%mend nodupvar;

%nodupvar

[/code:ukli15y5]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-2 19:06 , Processed in 0.128372 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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