【问题标题】:proc summary with statistic "multiply"带有统计“乘”的过程摘要
【发布时间】:2016-12-01 08:55:26
【问题描述】:

是否可以使用 proc summary 创建一个新的统计信息,例如将每列中的每个值相乘,而不是仅仅表示平均值? SAS 太死板了,让我抓狂。

data test;                                                
    input b c ;                                 
    datalines;                                                
    50 11                                       
    35 12                                        
    75 13                                       
    ;  

所需的输出将是 50*35*75、11*12*13 和 _FREQ(在过程摘要中是正常输出)

【问题讨论】:

  • 为什么需要使用PROC方式?数据步骤之前或完全可以接受吗?
  • 是的,可以接受数据步骤而不是 proc summary。我只是认为应该能够选择自己的统计数据
  • 不,proc 表示做一组特定的统计,文档有列表support.sas.com/documentation/cdl/en/proc/69850/HTML/default/…
  • 如果您想要矩阵类型功能,请查看 PROC IML。
  • 谢谢你,我会研究矩阵功能,虽然你的回答解决了问题

标签: sas summary


【解决方案1】:

这是一个不常见的聚合,因此您基本上需要自己滚动。由于数据步骤循环,这很容易使用 RETAIN 来保持行到行的值并在最后一条记录处输出结果。

 Data want;
   Set have end=eof;
   Retain prod_b prod_c;
   prod_b = prod_b * b;
   prod_c = prod_c * c;
   Freq= _n_;
 If eof then OUTPUT; 
  Keep prod: freq;
 Run;

【讨论】:

    猜你喜欢
    • 2016-05-24
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 2017-04-27
    • 2021-03-28
    • 2021-11-16
    • 2020-04-22
    • 1970-01-01
    相关资源
    最近更新 更多