楼主: xgnfly
4235 18

[原创博文] 请教高手如何将频数小于3的观察值用缺失值替换 [推广有奖]

11
sushe1527 发表于 2010-5-7 10:07:56
我的也是 x1-x8不能用,每次都得写个循环 靠 了
data a;
input x1 x2 x3 x4 x5 x6 x7 x8;
obs=_n_;
cards;
1 2 0 6 3 4 2 2
2 3 2 3 1 0 4 1
3 2 1 2 2 3 1 6
1 3 1 7 4 1 2 6
1 2 2 3 1 0 1 1
3 4 2 2 3 4 2 2
1 0 4 1 2 3 1 6
1 3 1 7 1 5 9 5
4 1 2 6 3 6 7 4
3 2 1 2 2 3 1 6
1 3 1 7 4 1 2 6
1 2 2 3 1 0 1 1
3 4 2 2 3 4 2 2
9 9 9 9 9 9 9 9
;
run;
%macro a(var);
data b;
set a;
proc sort data=b (keep=&var. obs);
by &var. ;
run;
data &var.;
set b;
by &var.;
if first.&var.=1 then do;
idx=1;
end;
else idx+1;
run;
proc sql;
create table &var. as select * ,max(idx) as num from &var. group by &var. ;
data &var.;
set &var.;
if num<3 then &var. =.;
drop num idx;
run;
proc sort data=&var.;
by obs;
run;
quit;
%mend a(var);
%macro b;
%do i=1 %to 8;
%a(x&i.);
%end;
data final(drop=obs);
     merge %do i=1 %to 8;
         x&i
        %end;
        ;
run;
%mend b;
%b;

12
xgnfly 发表于 2010-5-7 11:33:52
11# sushe1527

merge 还有如此用法,end后第二个;什么意思

data final(drop=obs);
     merge %do i=1 %to 8;
         x&i
        %end;
        ;
run;

最后谢谢crackman和 sushe1527 的大力帮助!

13
jingju11 发表于 2010-5-7 11:35:15
不过merge X1-X8.我想目前谁的版本也运行不了吧.

14
sushe1527 发表于 2010-5-7 12:04:48
jingju11 发表于 2010-5-7 11:35
不过merge X1-X8.我想目前谁的版本也运行不了吧.
不但是merge,我的set x1-x8 也不能用

15
jingju11 发表于 2010-5-7 12:09:44
14# sushe1527
set x1-x8;家里没有sas可试。我觉得好像可以吧。最起码9.2应该没有问题。

16
soporaeternus 发表于 2010-5-7 12:29:48
我是来看jingju说中文的.....
Let them be hard, but never unjust

17
crackman 发表于 2010-5-7 16:28:58
我的可以用的SAS 9.2

18
crackman 发表于 2010-5-7 16:30:46
50   data result;
51   merge x1-x8;
52   run;

NOTE: 有 14 个从数据集 WORK.X1 读取的观测。
NOTE: 有 14 个从数据集 WORK.X2 读取的观测。
NOTE: 有 14 个从数据集 WORK.X3 读取的观测。
NOTE: 有 14 个从数据集 WORK.X4 读取的观测。
NOTE: 有 14 个从数据集 WORK.X5 读取的观测。
NOTE: 有 14 个从数据集 WORK.X6 读取的观测。
NOTE: 有 14 个从数据集 WORK.X7 读取的观测。
NOTE: 有 14 个从数据集 WORK.X8 读取的观测。
NOTE: 数据集 WORK.RESULT 有 14 个观测和 9 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.06 秒
      CPU 时间          0.01 秒

19
jingju11 发表于 2010-5-7 20:44:10
对不起。我的9.2怎么突然可以用了呢。呵呵。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 02:10