Использование ggplot для группировки двумя различными способами - PullRequest
0 голосов
/ 28 июня 2019

У меня есть данные, которые выглядят примерно так:

id = rep(1:33,3)
year = rep(1:3,33)
group = sample(c(1:3),99, replace=T)
test_result = sample(c(TRUE,FALSE), size=99, replace = T)


df = data.frame(id, year, group, test_result)
df$year = as.factor(year)
df$group = as.factor(group)

Моя цель - представить его так, чтобы я мог видеть, как номер группы и год связаны с test_result.

df %>% 
    group_by(id,year) %>% 
    summarize(x=sum(test_result)) %>%
ggplot() + 
    geom_histogram(aes(fill = year, 
                       x = x), 
                   binwidth = 1, 
                   position='dodge') + 
    theme_minimal()

enter image description here

получает меня почти до конца. Я хочу добавить в конец что-то вроде facet_wrap(group~.), чтобы показать, как они изменяются по группам, но, очевидно, group не является частью агрегированного фрейма данных.

Прямо сейчас мое лучшее решение - просто показать несколько графиков, таких как

df %>% filter(group==1) # Replace group number here
    group_by(id,year) %>% 
    summarize(x=sum(test_result)) %>%
ggplot() + 
    geom_histogram(aes(fill = year, 
                       x = x), 
                   binwidth = 1, 
                   position='dodge') + 
    theme_minimal()

но я бы хотел выяснить, как поместить их всех в одну фигуру, и мне интересно, может быть, способ сделать это - добавить больше логики группировки в ggplot?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...