全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7574 10
2013-09-17
悬赏 1 个论坛币 已解决
我的数据是按班分类身高体重的信息,我想按班级分类,求出每个班级体重总和除以身高总和的值,我想只显示计算结果,请问怎么做?hight weight class id
156 51 Amber Chem101
156 52 Amber Math102
156 52 Amber Math102
167 54 Denise ENGL201
167 55 Denise ENGL201
145 56 Ginny CHEM101
145 57 Ginny ENGL201
145 58 Ginny MATH102
134 59 Lynn CHEM101
134 60 Lynn CHEM101
134 61 Lynn MATH102
178 62 Rick CHEM101
178 63 Rick HIST300
178 64 Rick HIST300


就是最后结果只显示amber类别里的hight之和除以weight之和的值等等。非常感谢!

最佳答案

beijingdizheng 查看完整内容

data have; input height weight class $ id $; cards; 156 51 Amber Chem101 156 52 Amber Math102 156 52 Amber Math102 167 54 Denise ENGL201 167 55 Denise ENGL201 145 56 Ginny CHEM101 145 57 Ginny ENGL201 145 58 Ginny MATH102 134 59 Lynn CHEM101 134 60 Lynn CHEM101 134 61 Lynn MATH102 178 62 Rick CHEM101 178 63 Rick HIST300 178 64 Rick HIST300 ; proc sql; select class,sum(weight)/s ...
二维码

扫码加我 拉你入群

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

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

全部回复
2013-9-17 23:49:40
data have;
input height weight class $ id $;
cards;
156 51 Amber Chem101
156 52 Amber Math102
156 52 Amber Math102
167 54 Denise ENGL201
167 55 Denise ENGL201
145 56 Ginny CHEM101
145 57 Ginny ENGL201
145 58 Ginny MATH102
134 59 Lynn CHEM101
134 60 Lynn CHEM101
134 61 Lynn MATH102
178 62 Rick CHEM101
178 63 Rick HIST300
178 64 Rick HIST300
;
proc sql;
select class,sum(weight)/sum(height) as rate from have group by class;
quit;
二维码

扫码加我 拉你入群

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

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

2013-9-18 10:55:42
beijingdizheng 发表于 2013-9-18 09:05
data have;
input height weight class $ id $;
cards;
太感谢了!能不能再请教个问题,我想把下面的观测值中height相同且weight为0的观测值删除(即第二条观测值)删除后,再做上面的操作,请问用怎么实现呢?
height weight class id
156 51 Amber Chem101
156 0 Amber Math102
156 52 Amber Math102
167 54 Denise ENGL201
168 0 Denise ENGL201
145 56 Ginny CHEM101
145 57 Ginny ENGL201
145 58 Ginny MATH102
134 59 Lynn CHEM101
134 60 Lynn CHEM101
134 61 Lynn MATH102
178 62 Rick CHEM101
178 63 Rick HIST300
178 64 Rick HIST300
二维码

扫码加我 拉你入群

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

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

2013-9-18 11:59:52
data have;
input height weight class $ id $;
cards;
156 51 Amber Chem101
156 0 Amber Math102
156 52 Amber Math102
167 54 Denise ENGL201
168 0 Denise ENGL201
145 56 Ginny CHEM101
145 57 Ginny ENGL201
145 58 Ginny MATH102
134 59 Lynn CHEM101
134 60 Lynn CHEM101
134 61 Lynn MATH102
178 62 Rick CHEM101
178 63 Rick HIST300
178 64 Rick HIST300
;
proc sort data=have;
by height descending weight;
run;
data want;
set have;
by height descending weight;
if first.height then total=0;
total+1;
if weight=0 and total>1 then delete;
run;
proc sql;
select class,sum(height)/sum(weight) as rate from want group by class;
quit;
二维码

扫码加我 拉你入群

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

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

2013-9-18 12:06:51
beijingdizheng 发表于 2013-9-18 11:59
data have;
input height weight class $ id $;
cards;
非常感谢!还希望以后跟着大师们多多学习呀!
二维码

扫码加我 拉你入群

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

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

2013-9-18 14:53:17
beijingdizheng 发表于 2013-9-18 11:59
data have;
input height weight class $ id $;
cards;
真是不好意思,我能不能再问个问题,比如下面的数据,我想计算weight的和,但是weight和height的相等观测值,只统计一次(如第一条和第二、三条观测值只计算一次),请问怎么操作
height weight class id
156 51 Amber Chem101
156 51 Amber Math102
156 51 Amber Math102
167 54 Denise ENGL201
168 0 Denise ENGL201
145 56 Ginny CHEM101
145 57 Ginny ENGL201
145 58 Ginny MATH102
134 59 Lynn CHEM101
134 60 Lynn CHEM101
134 61 Lynn MATH102
178 62 Rick CHEM101
178 63 Rick HIST300
178 64 Rick HIST300
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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