全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2229 4
2009-06-04

部分原始数据如下:
province  site   tbgrd     trgrd
hb           cd     17.3      1.41
hb           cd     17.62    0.45
jx            dc     30.07     0.09
jx            dc     58.85     0.19
对于上面的数据集,我想对tbgrd和trgrd按照site分组求均数,即想得到下面的结果
province   site       tbgrd                      trgrd
hb            cd     (17.3+17.62)/2       (1.41+0.45)/2
jx             dc     (30.07+58.85)/2       (0.09+0.19)/2

请问在SAS中如何实现?谢谢

 P.S.用PROC MEANS是可以初步得到结果的,但是利用ODS导出的数据格式与我上面希望的差别较大,不知道如何在SAS得到上述格式的结果.

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2009-6-4 17:44:00

proc sql;

create table nkwilling as

select

site
,mean(tbgrd) as m_tb

,mean(trgrd) as m_gr

from yourdata

group by 1

;

quit;

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-6-4 22:46:00
谢谢楼上.关键内容解决,你的结果仍然有重复数据,不过通过SET和FIRST.容易解决,谢谢!忽略了SQL中的GROUP,哈哈
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-6-4 23:53:00
*ODS导出怎么就不行?; data xxx; input province $ site $ tbgrd trgrd; datalines; hb cd 17.3 1.41 hb cd 17.62 0.45 jx dc 30.07 0.09 jx dc 58.85 0.19 ; ods _all_ close; proc means nway; ods output summary=zzz(keep=province site tbgrd_mean trgrd_mean rename=(tbgrd_mean=tbgrd trgrd_mean=trgrd)); class province site; var tbgrd trgrd; *ways 2; *types province*site; output out=yyy(drop=_type_ _freq_) mean=; ods listing; proc print data=yyy; proc print data=zzz; quit; *男人不能说不行,女人不能说不要。; 
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-6-5 00:30:00
proc means data=yourdata;class a;var b c;run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群