SAS:PROC意味着在类变量中进行分组

时间:2013-07-23 20:54:52

标签: sas

我有以下示例数据和'proc means'命令。

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命令中进行分组。

感谢。

1 个答案:

答案 0 :(得分:0)

使用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更详细。