【问题标题】:SAS: Proc freq by group for all variables at once?SAS:一次按组对所有变量进行频率处理?
【发布时间】:2019-05-23 22:57:37
【问题描述】:

我使用 Proc freq 来计算因变量(对数薪水)和自变量(crhits、crhome 等)之间的 Somers' D

有没有办法在一个 proc freq 语句中获取所有结果?

我目前使用的代码是

    DATA baseball;
        SET sashelp.baseball;
    RUN;

    PROC SORT 
        DATA = baseball; 
        BY team; 
    RUN;

    PROC FREQ 
        DATA = baseball
        ;
        TABLES logsalary * crhits
        / 
        MEASURES;
        OUTPUT OUT = somersd
            (KEEP = team N _SMDCR_
            RENAME = (_SMDCR_ = somers_d
                       N = num_in_group))
        MEASURES;
        BY team;
    RUN;

我希望在一个表中为每个变量 crhits、crhome 等获取输出“somersd”,并在一个过程中完成所有这些,这可能吗?

【问题讨论】:

    标签: group-by sas frequency-analysis sas-studio gini


    【解决方案1】:

    为什么不直接转置数据,让自变量成为一个新的 BY 组?

    proc transpose data=sashelp.baseball out=tall name=stat;
      by name team logsalary notsorted;
      var crhits crhome;
    run;
    proc sort;
      by team stat;
    run;
    
    ods exclude all;
    PROC FREQ DATA = tall ;
      BY team stat;
      TABLES logsalary * col1 / MEASURES;
      output measures out=measures
        (KEEP = team stat N _SMDCR_
         RENAME = (_SMDCR_ = somers_d N = num_in_group)
        ) 
      ;
    RUN;
    ods exclude none;
    

    【讨论】:

    • 有趣的想法,我会试试这个
    猜你喜欢
    • 2018-09-04
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    相关资源
    最近更新 更多