我根据退休状态为不同类型的锻炼生成了一个条形图。然而,图表是按退休状态(退休或未退休)排序的。
我想按锻炼的类型对图表进行排序,以便对每种类型的锻炼将退休状态分组在一起。
使用Stata的玩具auto数据集的示例如下:
sysuse auto, clear
graph bar turn mpg gear_ratio, over(foreign)

在本例中,我希望针对每个汽车属性将car类型组合在一起。
发布于 2019-01-30 03:01:02
reshape命令是将数据转换成所需格式的一种很好的方法:
sysuse auto, clear
local my_yvars "turn mpg gear_ratio"
local my_cat_var "foreign"
/* Store variable labels to relabel the variables below */
local labels ""
foreach var of varlist `my_yvars' {
local `var': variable label `var'
local labels `"`labels' ("`var'" = "``var''")"'
}
collapse (mean) `my_yvars', by(`my_cat_var')
rename (`my_yvars') (y=)
reshape long y, i(`my_cat_var') j(variable) string
strrec variable `labels', replace
graph bar y , over(`my_cat_var') over(variable) asyvars

请注意,strrec是一个由社区提供的命令,可以从SSC安装:
ssc install strrec发布于 2019-02-07 19:01:10
根据@NickCox的建议,您也可以使用社区提供的命令statplot。
下面的代码在一行中生成等效的图形:
sysuse auto, clear
statplot gear_ratio mpg turn, over(foreign) vertical asyvars

要使用statplot,首先通过在Stata的命令提示符中键入以下命令来安装它:
ssc install statplothttps://stackoverflow.com/questions/54426418
复制相似问题