[英]ggplot2() bar chart and dplyr() grouped and overall data in R
我想制作一個堆積的比例條形圖,以表示居住在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
和mutate
代替rbind
和transform
將預處理添加到管道中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.