首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SAS中存储Proc均值变量

在SAS中存储Proc均值变量
EN

Stack Overflow用户
提问于 2013-06-06 14:28:43
回答 3查看 529关注 0票数 0
代码语言:javascript
复制
    proc means data=har.&seg_cell n mean std p1 p50 p99;
    class segment;
    var txn tpv;
    output out=stat_1 (drop = _TYPE_ _FREQ_) 
    P1(txn)=txn_P1_T P1(tpv)=tpv_P1_T
    P99(txn)=txn_P99_T P99(tpv)=tpv_P99_T
    ;
    where POS_flag = &POS and cell=&gcell;
    title "Stat Summary - Test_POS";
    run;

    data har.&seg_cell;
    if _N_=1 then set stat_1; 
    set har.&seg_cell;
    run;

我想将TXN和TPV段的P1 P50 P99 (段有10个不同的名称)保存到单独的变量中。但是当我运行这段代码时,只存储了所有行的总体(所有段) P1 P50 P99。

我想要的是取决于特定的P1 P50 P99应该添加的部分。

请帮助我解决这个问题,并请原谅我的脏话。

EN

回答 3

Stack Overflow用户

发布于 2013-06-06 21:27:59

您需要:

通过segment

  • Use (_TYPE_=0).

  • Merge
  1. 选项对您的源数据集进行排序,以消除从输出数据集传回源的MEANS输出数据集中出现的“总计”观察值。

所以,一个完整的解决方案应该是这样的:

代码语言:javascript
复制
proc sort data=har.&seg_cell;
   by segment;
run;
proc means nway data=har.&seg_cell n mean std p1 p50 p99;
  class segment;
  var txn tpv;
  output out=stat_1 (drop = _TYPE_ _FREQ_) 
         P1(txn)=txn_P1_T P1(tpv)=tpv_P1_T
         P99(txn)=txn_P99_T P99(tpv)=tpv_P99_T;
  where POS_flag = &POS and cell=&gcell;
  title "Stat Summary - Test_POS";
run;

data har.&seg_cell;
   merge har.&seg_cell stat_1;
      by segment;
run;
票数 1
EN

Stack Overflow用户

发布于 2013-06-06 16:33:47

尝试使用by segment而不是class。注您必须首先按segment对数据集进行排序。

票数 0
EN

Stack Overflow用户

发布于 2013-06-06 21:04:15

如果希望将每个segment的汇总数据合并到适当的行中,则需要执行merge by而不是使用if _N_=1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16955123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档