SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: shiyiming
打印 上一主题 下一主题

proc means输出问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
11#
 楼主| 发表于 2010-3-3 09:36:14 | 只看该作者

Re: proc means输出问题

Here is a working but awkward approach. Essentially it's nothing new but pretty much borrowing the ideas from the posts in the above. I'm also expecting an elegant way of achieving this to show up. <!-- s:-) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":-)" title="Smile" /><!-- s:-) -->

[code:orb67fo6]data bb;
   input var1-var4;
   datalines;
1 2 3 4
1 2 3 4
1 2 3 4
5 6 4 8
8 5 9 3
7 5 8 7
3 4 9 8
5 2 4 6
;
run;

%macro means(in =, vars =, metrics =, out =);
  proc means data = &amp;in&#46; noprint;
    var &amp;vars&#46;;
    output out = &amp;out&#46; (drop=_type_ _freq_)
           &amp;metrics&#46; /autoname;
  run;

  proc transpose data = &amp;out&#46;
                 out = &amp;out&#46;(rename = (_name_ = formerVar
                                       col1 = value
                                      )
                            );
  run;

  data &amp;out&#46;(drop = formerVar);
    set &amp;out&#46;;
    variable = scan(formerVar, 1, '_');
    metric = scan(formerVar, 2, '_');
  run;

  proc sort data = &amp;out&#46;;
    by variable;
  run;

  proc transpose data = &amp;out&#46;
                 out = &amp;out&#46;(drop = _name_);
    by variable;
    id metric;
    var value;
  run;
%mend means;

%means(in = bb, vars = %nrstr(var1-var4), metrics = %nrstr(mean= N= std= min= max= median=), out = summary);

[/code:orb67fo6]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
12#
 楼主| 发表于 2010-3-10 10:08:52 | 只看该作者

Re: proc means输出问题

muhahaha,这个最赞!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-3-3 17:26 , Processed in 0.138623 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表