B*******9 发帖数: 71 | 1 我有一组数据,第一列是clinic number, 第二列是patient id
1 23
1 44
1 56
1 25
3 34
3 35
..
..
..
clinic 1有四个patient,clinic 3有两个patient,如果我只要超过3个patient的
clinic的数据用SAS该怎么操作啊?
我SAS刚入门,请教各位了。谢谢! |
o****o 发帖数: 8077 | 2 PROC SQL group by having
PROC FREQ & merge back
PROC SORT and DOW |
T*******I 发帖数: 5138 | 3 Basically and the simplest:
Step 1:
proc freq data=xxx;
table CN; /* CN: clinic number */
run;
Step 2:
data xxx_CN_freq;
set XXX;
if CN = 1 then CN_freq=X1;
if CN = 3 then CN_freq=X2;
....
run;
Step 3:
data XXX_out;
set XXX_CN_freq;
if CN_freq > 3 then output;
run;
Then the XXX_out should be what you need.
or revise the Step 2 to:
data xxx_out;
set XXX;
if CN = 1 then CN_freq=X1;
if CN = 3 then CN_freq=X2;
....
if CN_freq <= 3 then delete;
run;
【在 B*******9 的大作中提到】 : 我有一组数据,第一列是clinic number, 第二列是patient id : 1 23 : 1 44 : 1 56 : 1 25 : 3 34 : 3 35 : .. : .. : ..
|
h******e 发帖数: 1791 | 4 请问dow是什么?
【在 o****o 的大作中提到】 : PROC SQL group by having : PROC FREQ & merge back : PROC SORT and DOW
|
H**********v 发帖数: 169 | 5 用SQL可以全部搞定:
proc sql;
create table test1 as select *, count(clinic_number) as count
from test
group by clinic_number;
create table test2 as select *
from test1
where count>3; |
b**********i 发帖数: 1059 | 6 大家都玩sas,用spss的我老很寂寞啊。aggregate + select if 搞定了。
【在 B*******9 的大作中提到】 : 我有一组数据,第一列是clinic number, 第二列是patient id : 1 23 : 1 44 : 1 56 : 1 25 : 3 34 : 3 35 : .. : .. : ..
|