我是 SAS 新手,但我正在准备一个讲座来解释一些基本的 SAS。 我想展示如何使用 SAS(版本 9.4)创建条形图。 为此,我使用 SAS 中的“heart”示例数据集。
如果我通过
PROC FREQ
为变量“Smoking_Status”创建条形图,我会得到无用的条形排序。
是否可以在
PROC FREQ
中手动订购条形,也许通过 ORDER=
参数?我不明白怎么办。我希望图表有很好的描述,而不是在标签前加上“1-”或“2-”前缀,以便能够按字母顺序对它们进行排序,因为这会降低结果图的可读性。
我可以用
SGPLOT
达到想要的结果。
proc sgplot data=sashelp.heart;
vbar Smoking_Status;
title "Distribution of smoking_status from sashelp.heart dataset";
xaxis display=(nolabel) values=('Non-smoker' 'Light (1-5)' 'Moderate (6-15)'
'Heavy (16-25)' 'Very Heavy (> 25)');
run;
我的问题是:还有没有办法通过
PROC FREQ
达到这个结果?
我想确定是否是这种情况,因为我想展示这个问题的最简单、最直接的解决方案。
是的,您可以通过
ORDER=
语句来执行此操作。默认值为 INTERNAL
,适用于未格式化的值并按字母顺序放置字符变量。将分组变量转换为数字并应用设置所需标签的格式通常会更灵活。或者,您可以使用 ORDER=DATA
并以正确的顺序在数据集的顶部添加记录,例如权重为零。