全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1316 6
2022-01-18
想计算年龄、身高、体重各分位数的值,代码如下:
proc means data=sashelp.class p5 p25 p50 p75 p95;
class sex;
var age height weight;
output out=pct;
run;


我想实现的结果样子是_stat_列显示5%,25%,50%,75%,95%的值,而不是最大最小平均值之类的












附件列表
age.jpg

原图尺寸 52.55 KB

age.jpg

二维码

扫码加我 拉你入群

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

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

全部回复
2022-1-18 17:13:14
proc means data=sashelp.class  maxdec=1 noprint;
  class sex;
  var age height weight;
        output out=pct(drop=_freq_ _type_)
  P5= P25= P50= P75= P95= /autoname;        
run;

二维码

扫码加我 拉你入群

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

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

2022-1-19 08:48:31
HXAI102230 发表于 2022-1-18 17:13
proc means data=sashelp.class  maxdec=1 noprint;
  class sex;
  var age height weight;
老师,我试了下没成功,这样就变成横的了,每个age、height、weight各分了5%-95%的5列
二维码

扫码加我 拉你入群

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

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

2022-1-19 09:27:36

proc means data=sashelp.class  maxdec=1 noprint;
  class sex;
  var age height weight;
        output out=pct(drop=_freq_ _type_ )
  P5= P25= P50= P75= P95= /autoname;        
run;

proc transpose data=pct out=pctn;
  by sex;
        var Age_P5--Weight_P95;
run;

data pctn1;
  set pctn;
        by sex;
  name=scan(_name_,1,'_');
        stat=scan(_name_,2,'_');
        drop _name_;
run;

proc sort data=pctn1;
  by sex stat;
run;

proc transpose data=pctn1 out=pctn2(drop=_name_);
  by sex stat;
        id name;
        var col1;
run;
二维码

扫码加我 拉你入群

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

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

2022-1-19 09:28:14
更新后程序可以实现想要的格式么?
二维码

扫码加我 拉你入群

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

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

2022-1-20 08:47:38
HXAI102230 发表于 2022-1-19 09:28
更新后程序可以实现想要的格式么?
这个可以,但是我数据量太大(几百个需要var 的参数,上百万行观测),就希望像上面图中一样一次性跑出来
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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