【问题标题】:SAS: PROC MEANS Grouping in Class VariableSAS:PROC MEANS 在类变量中分组
【发布时间】:2013-07-24 04:59:35
【问题描述】:

我有以下示例数据和“proc 方法”命令。

data have;
input measure country $;
datalines; 
250 UK
800 Ireland 
500 Finland
250 Slovakia
3888 Slovenia
34 Portugal
44 Netherlands
4666 Austria
run;
PROC PRINT data=have; RUN;

下面的 PROC MEANS 命令为上面的每个国家打印出一个列表。如何在 PROC MEANS 步骤中将其中一些国家(即英国和爱尔兰、斯洛伐克/斯洛文尼亚作为中欧)分组,而不是添加另一个数据步骤来添加“案例时间”等?

proc means data=have sum  maxdec=2 order=freq STACKODS;
var measure;
class country;
run;

感谢您在这方面的任何帮助。我知道您可以在 PROC MEANS 命令本身中执行各种操作(例如通过这样做来限制国家/地区的数量:

proc means data=have(WHERE=(country not in ('Finland', 'UK')

为了简洁起见,我想在 PROC MEANS 命令中进行分组。

谢谢。

【问题讨论】:

    标签: sas


    【解决方案1】:

    对于任何采用 CLASS 语句的 PROC 格式,这都非常容易。

    只需使用代码或数据构建格式;然后在 PROC MEANS 语句中应用该格式。

    proc format lib=work;
    value $countrygroup
    "UK"="British Isles"
    "Ireland"="British Isles"
    "Slovakia","Slovenia"="Central Europe"
    ;
    quit;
    
    proc means data=have;
    class country;
    var measure;
    format country $countrygroup.;
    run;
    

    通常最好为国家/地区设置数字代码,然后将其格式化为任何时候需要的任何一组名称,尤其是大写/等。很烦人,但即使在这里也能很好地工作。

    PROC FORMAT 中的CNTLIN= 选项允许您从数据集制作格式,其中 FMTNAME 作为值语句,START 作为值到标签,LABEL 作为标签。 (END=范围结束,如果是数字。)还有其他选项,documentation 更详细。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      • 2017-05-17
      • 1970-01-01
      • 2019-03-16
      相关资源
      最近更新 更多