【发布时间】:2022-01-18 12:40:29
【问题描述】:
我有一个包含多个分类值的数据框,比如说来自 vcd 包的 Arthritis 数据集。
## Load vcd package
library(vcd)
## Load Arthritis dataset (data frame)
data(Arthritis)
colnames(Arthritis)
"ID" "Treatment" "Sex" "Age" "Improved"
我想为那些改善的患者创建治疗计数的条形图(x 轴,安慰剂和治疗)。 这是代码:
Arthritis1 <- Arthritis %>%
dplyr::filter(Improved == "Marked")
ggplot(data = Arthritis1, aes(x = Treatment)) +
geom_bar()
但是,现在我想绘制百分比。也就是说,对于所有服用安慰剂的患者,属于“显着”改善的患者的百分比。 对于所有“治疗”的患者,属于“显着”改善的患者的百分比。
我可以得到这样的百分比。
a = table(Arthritis1$Treatment)[1]/table(Arthritis$Treatment)[1]
b = table(Arthritis1$Treatment)[2]/table(Arthritis$Treatment)[2]
Arthritis2 <- as.data.frame(c(a, b))
colnames(Arthritis2)[1] <- "var1"
str(Arthritis2)
'data.frame': 2 obs. of 1 variable:
$ var1: num 0.163 0.512
所以我想要一个有两列的图,值 1 作为顶部,安慰剂达到 0.163,治疗达到 0.512。
但是,我还没有找到将其绘制为百分比的方法,例如 geom_bar() 绘制计数。
【问题讨论】: