在 Stata 中为来自 R 代码的分类变量创建百分比条形图
Create percentage bar chart in Stata for categorical variables from R code
我是 Stata 的新手,正在尝试在那里重新创建我的 R 代码。我有两个要绘制的因子变量。一个是费用,取值 "Afs 2500-5000" "Afs 5000-7500" "Afs 7500-10000" "Less than Afs 2500" "More than Afs 10000"
.
另一个是教育水平,取值"High school" "Madrassa" "No schooling" "Other" "Primary school" "Secondary school"
为了绘制带百分比的条形图,我使用了
educ <- with(data, table(expenses, education))
education <- round(prop.table(educ,2)*100,digits=0)
barplot(prop.table(education,2)*100,
xlab='Education level',ylab='Percentages',main="Monthly expenses by education status",beside=T, col = ramp.list,
legend=rownames(education), args.legend
= list(x = "topleft", cex=0.3))
这给了我这个:percentage bar chart
我如何在 Stata 中做同样的事情?似乎没有简单的方法来像 R 中那样用 as.factor 重新编码变量。我得到的最接近的是:
encode Education, generate(educ)
tabulate Expenditure educ, col
table Expenditure, stat(fvpercent educ)
不行。
R 中 as.factor 的等价物是什么?我如何生成像我上面介绍的那样的可视化效果?谢谢!
在没有数据的例子中:
首先请注意,您的图表很乱,因为预测变量和结果的类别都是按字母(字母数字)顺序排列的。例如,费用变量应以 "Less than Afs 2500"
开头,教育变量应以 "No schooling"
开头,然后是 "Primary School"
。
关于主要问题:在 Stata 中,您可以使用 graph bar
或任何包装它的命令。
这个例子是可重现的:
sysuse auto, clear
set scheme s1color
ssc install catplot
catplot rep78, over(foreign) percent(foreign) recast(bar) ///
asyvars bar(1, color(red)) bar(2, fcolor(red*0.4) lcolor(red)) ///
bar(3, fcolor(blue*0.2) lcolor(blue)) bar(4, fcolor(blue*0.6) lcolor(blue)) ///
bar(5, color(blue)) legend(row(1)) ytitle(% of Domestic or foreign) yla(, ang(h))
我是 Stata 的新手,正在尝试在那里重新创建我的 R 代码。我有两个要绘制的因子变量。一个是费用,取值 "Afs 2500-5000" "Afs 5000-7500" "Afs 7500-10000" "Less than Afs 2500" "More than Afs 10000"
.
另一个是教育水平,取值"High school" "Madrassa" "No schooling" "Other" "Primary school" "Secondary school"
为了绘制带百分比的条形图,我使用了
educ <- with(data, table(expenses, education))
education <- round(prop.table(educ,2)*100,digits=0)
barplot(prop.table(education,2)*100,
xlab='Education level',ylab='Percentages',main="Monthly expenses by education status",beside=T, col = ramp.list,
legend=rownames(education), args.legend
= list(x = "topleft", cex=0.3))
这给了我这个:percentage bar chart
我如何在 Stata 中做同样的事情?似乎没有简单的方法来像 R 中那样用 as.factor 重新编码变量。我得到的最接近的是:
encode Education, generate(educ)
tabulate Expenditure educ, col
table Expenditure, stat(fvpercent educ)
不行。
R 中 as.factor 的等价物是什么?我如何生成像我上面介绍的那样的可视化效果?谢谢!
在没有数据的例子中:
首先请注意,您的图表很乱,因为预测变量和结果的类别都是按字母(字母数字)顺序排列的。例如,费用变量应以 "Less than Afs 2500"
开头,教育变量应以 "No schooling"
开头,然后是 "Primary School"
。
关于主要问题:在 Stata 中,您可以使用 graph bar
或任何包装它的命令。
这个例子是可重现的:
sysuse auto, clear
set scheme s1color
ssc install catplot
catplot rep78, over(foreign) percent(foreign) recast(bar) ///
asyvars bar(1, color(red)) bar(2, fcolor(red*0.4) lcolor(red)) ///
bar(3, fcolor(blue*0.2) lcolor(blue)) bar(4, fcolor(blue*0.6) lcolor(blue)) ///
bar(5, color(blue)) legend(row(1)) ytitle(% of Domestic or foreign) yla(, ang(h))