我有以下示例数据和'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命令中进行分组。
感谢。
答案 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更详细。