我有一个数据框架,如下所示:
gender <- c("F", "M", "M", "M", "M")
entourage <- c("YC; AD; EL", "YC", "AD; YC", "AD", "EL")
data <- data.frame(gender, entourage)我想要画出子字符串"YC“、"AD”和"EL“在ggplot中出现的次数。考虑到性别是"M“,我也想画出"YC”的计数。
发布于 2016-04-21 17:41:33
加载库:
library(tidyr)
library(dplyr)
library(ggplot2)我认为问题的症结在于将你的数据转换成tidy格式--或者至少是更易于管理的。创建一个整洁的data.frame
tidy.df <- data %>%
mutate(ent = strsplit(as.character(entourage), "; ")) %>%
unnest()
# head(tidy.df)
# gender entourage ent
# (fctr) (fctr) (chr)
# 1 F YC; AD; EL YC
# 2 F YC; AD; EL AD
# 3 F YC; AD; EL EL
# 4 M YC YC
# 5 M AD; YC AD
# 6 M AD; YC YC那么你就有了很多密谋的选择。看一下facet_wrap和facet_grid,或者geom_bar(position = "dodge")的例子。
ggplot(tidy.df, aes(x = ent, fill = gender)) +
geom_bar(position = "dodge")

https://stackoverflow.com/questions/36775986
复制相似问题