【问题标题】:SAS: How to calculate frequency for all character variables except someSAS:如何计算所有字符变量的频率,除了一些
【发布时间】:2018-04-07 23:06:53
【问题描述】:

我知道我可以使用以下方法来计算所有字符的频率:

proc freq data=sashelp.class;
tables _char_;
run;

但是,有没有办法排除一些变量?我想做类似的事情:

proc freq data=sashelp.class;
tables _char_ EXCEPT VAR1 VAR2;
run;

非常感谢!

【问题讨论】:

    标签: sas


    【解决方案1】:

    你可以使用 drop = ,如下所示。

    proc freq data=sashelp.cars(drop=origin make);
      tables _char_;
       run;
    

    【讨论】:

    • 谢谢基兰!我不知道我们以前可以使用 drop in proc freq!
    【解决方案2】:

    drop 示例是最简单的,当然也可能是最好的,如果这正是请求的话。

    但是,如果稍有不同 - 例如,您想要包含(或排除)与特定模式匹配的所有字符变量,您可以使用从 dictionary.columns(或 proc 内容输出数据集)构造的宏变量。

    proc sql;
      select name 
        into :freqlist separated by ' '
        from dictionary.columns
        where memname='YOURTABLE' and libname='YOURLIB'
        and type='char' and name like 'PATTERN%'
      ;
    quit;
    

    显然是适当的填充各种大写的东西。通常 MEMNAME、LIBNAME 和 NAME 以大写形式存储,但并非总是如此,因此请考虑将 UPCASE() 添加到它们。

    然后您可以将&freqlist.; 放在tables 语句中以获取与您的查询匹配的列列表。

    【讨论】:

    • 这是高端解决方案。它就像一个魅力!
    猜你喜欢
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多