2017-10-21 69 views
0

整體數據我想使表示居住在城鎮A,B,和C.予個體的組羣的糖尿病患病率堆疊比例條形圖'd也喜歡繪製代表整個隊列的條形圖。GGPLOT2()條形圖和分組dplyr()和中的R

我很高興與下面的情節,但我想知道是否有結合預處理步驟進入處理步驟,即用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() 

回答

2

像這樣:

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

+0

對不起,我不是很清楚,我的意思是如何把什麼在DFB <發生加入預加工成管道 - rbind(DFA,變換(DFA,鎮= 「ALL」))到DFC <- dfb %>%GROUP_BY(鎮)%>%計數(糖尿病)%>%突變(丙= N /總和(N))。 – LLL

+0

我改變了答案,包括在管道中的預處理步驟 – tbradley