Основываясь на этом вопросе, я бы добавил геомы к полученному графику по строке после того, как я переместил data.frame, чтобы получить график для каждой строки, с выделением данных строки внутри его группа.
library(tidyverse) # using version 1.3.0
mydata <- data_frame(group = c('a', 'a', 'a', 'b', 'b', 'b'),
x = c(1,2,3,5,6,7),
y = c(3,5,6,4,3,2))
mydata2 <- mydata %>%
group_by(group) %>%
nest() %>%
mutate(myplot = map(data, ~ggplot(data = .x, aes(x = x, y = y)) + geom_point()))
mydata2
# A tibble: 2 x 3
# Groups: group [2]
group data myplot
<chr> <list> <list>
1 a <tibble [3 x 2]> <gg>
2 b <tibble [3 x 2]> <gg>
Желаемый результат для первой строки:
mydata2$myplot[[1]] + geom_point(mapping = aes(x=1,y=3),color = "red")
Однако , при попытке реализовать это на невыпущенных data.frame, я терплю неудачу. Вот три мои попытки и их результаты:
mydata3 <- mydata2 %>%
unnest(data) %>%
mutate(myplot2 = myplot + geom_point(mapping = aes(x=x,y=y),color = "red"))
mydata3$myplot2[[1]]
NULL
Warning message:
Unknown or uninitialised column: `myplot2`.
mydata4 <- mydata2 %>%
unnest(data) %>%
mutate(myplot2 = list(myplot[[1]] + geom_point(mapping = aes(x=x,y=y),color = "red")))
mydata4$myplot2[[1]]
Все точки стали красными! Я получил такой же вывод для этой попытки:
mydata5 <- mydata2 %>%
unnest(data) %>%
mutate(myplot2 = map(myplot,~.x + geom_point(mapping = aes(x=x,y=y),color = "red")))
mydata5$myplot2[[1]]
Итак, мой вопрос, есть ли способ получить первый график с использованием тидиверса?