2017-10-21 93 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