您可以通过 PROC FREQ 手动定义列顺序吗?

问题描述 投票:0回答:1

我是 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
达到这个结果? 我想确定是否是这种情况,因为我想展示这个问题的最简单、最直接的解决方案。

sas bar-chart
1个回答
0
投票

是的,您可以通过

ORDER=
语句来执行此操作。默认值为
INTERNAL
,适用于未格式化的值并按字母顺序放置字符变量。将分组变量转换为数字并应用设置所需标签的格式通常会更灵活。或者,您可以使用
ORDER=DATA
并以正确的顺序在数据集的顶部添加记录,例如权重为零。

© www.soinside.com 2019 - 2024. All rights reserved.