【问题标题】:Macro (loop) functions in SASSAS 中的宏(循环)函数
【发布时间】:2015-09-05 00:14:46
【问题描述】:

我在SAS中做一些很简单的分析,求均值、标准差和中位数,代码是这样的

proc means data=data001
mean median;
VAR= price volume; 
output out=new001;
mean=avprice avvolume
median=medprice medvolume; run;

但问题是我有超过 100 个数据集(data001 到 data299)。

我只想使用Macro 一次处理所有数据集(从 001 到 299)并将结果输出到一个表中?有没有办法做到这一点?

谢谢,周末愉快!

【问题讨论】:

    标签: macros sas proc


    【解决方案1】:

    将它们全部附加到一个表中,并使用 CLASS 或 BY 变量来区分。

    Data combined;
    Set data001-data099 indsname=source;
    Data_source=source;
    Run;
    
    Proc sort data=combined; by data_source; 
    
    proc means data=combined noprint;
    By data_source;
    VAR= price volume; 
    output out=new001;
    mean=avprice avvolume
    median=medprice medvolume; run;
    

    【讨论】:

    • 创建一个视图来组合表格可能会更快,然后将by data_source notsorted; 用于proc means,因为这样可以避免排序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多