簡體   English   中英

R中的ggplot2()條形圖和dplyr()分組以及整體數據

[英]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_rowsmutate代替rbindtransform將預處理添加到管道中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM