作者west1996 ()
看板Statistics
标题Re: 请益sas分组问题!!
时间Wed Jan 9 14:31:44 2019
data test;
inputD :$1. response;
datalines;
1 745
1 678
1 .
2 867
2 931
2 214
3 .
3 .
3 978
4 .
4 .
4 .
;
run;
proc means data=work.test nway noprint;
var response;
class id;
output out=work.stat(drop=_type_ _freq_) n=group sum=r_sum mean=r_mean median=r_median;
run;
data work.final;
set work.stat;
if group=3 then ans=r_median;
else if group=2 then ans=r_mean;
else if group=1 then ans=r_sum/2;
else if group=0 then ans=.;
keep id group ans;
run;
proc print data=work.final;
run;
※ 引述《zaicross (Zoc)》之铭言:
: 各位高手好!
: 小弟这边有一个sas语法的问题想请教各位
: 我现在有一笔资料,每一个id都有三笔数据,
: 现在我想将3笔都有数据的取中位数,只有2笔有的话计算两者平均,只有1笔的话将该值
: 除以2,不知道有没有语法可以写!
: 拜托各位了!(找很久都无解
: 或是
: 将有三笔数据的命为3
: 只有两笔的命为2
: 只有一笔的命为1
: 都没有数据命为0
: 希望跑完会长这样:
: ID Response Group
: 1 745 2
: 1 678 2
: 1 NF 2
: 2 867 3
: 2 931 3
: 2 214 3
: 3 NF 1
: 3 NF 1
: 3 978 1
: 4 NF 0
: 4 NF 0
: 4 NF 0
: https://i.imgur.com/UKuIMRk.jpg
-----
Sent from JPTT on my Samsung SM-N9208.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 27.246.197.196
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1547015511.A.413.html
※ 编辑: west1996 (27.246.197.196), 01/09/2019 14:35:11
1F:推 zaicross: 感谢回覆!!不过我的状况主要是针对有几千几百笔的情况 01/10 01:05
2F:→ zaicross: 谢谢 01/10 01:05
3F:→ west1996: 只要你逻辑没有讲漏,程式後半段的语法与资料量无关,几 01/10 10:45
4F:→ west1996: 亿笔也是可以正确执行吧?! 01/10 10:45