楼主: dxystata
666 2

[有偿编程] 如何得到3列变量,变量名是sex var1 var2 [推广有奖]

版主

已卖:302份资源

大师

37%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
183395 个
通用积分
15333.1475
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
298627 点
帖子
5586
精华
1
在线时间
13632 小时
注册时间
2006-6-21
最后登录
2025-12-22

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

楼主
dxystata 发表于 2022-4-2 11:11:09 |AI写论文
50论坛币
  1. data class;
  2.         set sashelp.class;
  3. run;

  4. ods output summary=aaa;
  5. proc means data=class;
  6.         var age;
  7.         class sex;
  8.         output out=sum1;
  9. run;
复制代码
希望得到如下3列变量,变量名是sex var1  var2。
sex   var1                var2
男    N                       10
男    Mean(SD)           13.40(1.65)
男    Min-Max             11~16
女    N
女    Mean(SD)
女    Min-Max


谢谢!

最佳答案

whymath 查看完整内容

Means过程步建议使用stackodsoutput选项,以免输出数据集的统计指标变量名带有分析变量的名字,于后续的数据处理不利。 可以看到,在sum2数据集中,除了在keep语句中出现了分类变量sex,其余语句均未引用原数据集的变量,这样处理耦合性低,稍加处理即可封装成宏使用。
关键词:VaR SEX Summary SASHELP output

沙发
whymath 发表于 2022-4-2 11:11:10
Means过程步建议使用stackodsoutput选项,以免输出数据集的统计指标变量名带有分析变量的名字,于后续的数据处理不利。
  1. data class;
  2.   set sashelp.class;
  3. run;

  4. ods output summary=sum1;
  5. proc means data=class n mean std min max stackodsoutput;
  6.   var age;
  7.   class sex;
  8. run;
  9. ods output close;

  10. data sum2;
  11.   set sum1;

  12.   stat_n=cats(N);
  13.   stat_mean=cats(put(mean,12.2));
  14.   stat_std=cats(put(stddev,12.2));
  15.   stat_mnsd=cats(stat_mean,'(',stat_std,')');
  16.   stat_min=cats(min);
  17.   stat_max=cats(max);
  18.   stat_minmax=cats(stat_min,'~',stat_max);

  19.   array _stat_ stat_n stat_mnsd stat_minmax;
  20.   do over _stat_;
  21.     __idx=_i_;
  22.     __nam=upcase(scan(vname(_stat_),2,'_'));
  23.     __lab=vlabel(_stat_);
  24.     __val=_stat_;
  25.     output;
  26.   end;

  27.   keep sex variable __idx __nam __lab __val;
  28.   label stat_n='N' stat_mean='Mean' stat_std='SD' stat_mnsd='Mean(SD)'
  29.     stat_min='Min' stat_max='Max' stat_minmax='Min-Max';
  30. run;
复制代码

可以看到,在sum2数据集中,除了在keep语句中出现了分类变量sex,其余语句均未引用原数据集的变量,这样处理耦合性低,稍加处理即可封装成宏使用。
已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
dxystata + 100 + 2 + 2 + 1 热心帮助其他会员

总评分: 经验 + 100  学术水平 + 2  热心指数 + 2  信用等级 + 1   查看全部评分

藤椅
橙红的果士 学生认证  发表于 2022-4-7 09:58:02
基本就是上面这样的做法,横向转纵向,思路是一样的

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 13:50