如何使用SAS基于已聚合数据制作直方图(Excel式逻辑)
用SAS基于已聚合数据制作“Excel式”直方图
你的已聚合数据结构如下:
| year | value |
|---|---|
| 2013 | 10 |
| 2014 | 15 |
| 2015 | 12 |
| 2016 | 14 |
| 2017 | 11 |
| 2018 | 12 |
方法1:使用PROC SGPLOT
默认情况下PROC SGPLOT的VBAR语句会统计分类变量的频数,要直接用已聚合的value作为条形高度,需指定response参数并添加noaggregate选项:
/* 创建示例数据集 */ data aggregated_data; input year value; datalines; 2013 10 2014 15 2015 12 2016 14 2017 11 2018 12 ; run; /* 生成对应图形 */ proc sgplot data=aggregated_data; vbar year / response=value noaggregate; xaxis label="年份"; yaxis label="数值"; title "基于已聚合数据的直方图"; run;
response=value:指定用value列的数值作为每个条形的高度noaggregate:禁止SAS对数据做额外聚合计算,直接使用每条记录的value值
方法2:使用PROC GCHART
如果习惯用PROC GCHART,可通过sumvar参数指定要使用的聚合数值列:
proc gchart data=aggregated_data; vbar year / sumvar=value; title "基于已聚合数据的直方图"; run; quit;
sumvar=value会将value作为求和变量,由于你的数据中每个year仅对应一个value,求和结果就是原始的value值,不会产生额外聚合。
这两种方法都能实现类似Excel的操作逻辑,直接基于已聚合数据生成图形,无需SAS再做聚合处理。
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

