我想制作一个堆积比例条形图,代表居住在城镇 A、B 和 C 的一组人的糖尿病患病率。我还希望该图以一个条形图为特色,代表整个队列。
我对下面的图很满意,但我想知道是否有一种方法可以将预处理步骤合并到处理步骤中,即使用 dplyr() 进行管道传输?
谢谢!
起点(df):
dfa <- data.frame(town=c("A","A","A","B","B","C","C","C","C","C"),diabetes=c("y","y","n","n","y","n","y","n","n","y"),heartdisease=c("n","y","y","n","y","y","n","n","n","y"))
预处理:
dfb <- rbind(dfa, transform(dfa, town = "ALL"))
处理和绘图:
library(dplyr)
library(ggplot)
dfc <- dfb %>%
group_by(town) %>%
count(diabetes) %>%
mutate(prop = n / sum(n))
ggplot(dfc, aes(x = town, y = prop, fill = diabetes)) +
geom_bar(stat = "identity") +
coord_flip()
像这样:
dfc <- dfa %>%
bind_rows(dfa %>%
mutate(town = "ALL")) %>%
group_by(town) %>%
count(diabetes) %>%
mutate(prop = n / sum(n)) %>%
ggplot(aes(x = town, y = prop, fill = diabetes)) +
geom_bar(stat = "identity") +
coord_flip()
编辑:使用bind_rows
andmutate
代替rbind
and将预处理添加到管道中transform
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句