【发布时间】:2018-05-09 00:01:17
【问题描述】:
我有一些关于 purrr::pmap 在nested.data.frame 中制作多个ggplot 绘图的问题。
我可以通过使用 purrr::map2 毫无问题地运行以下代码,并且可以在 nested.data.frame 中制作多图(2 个图)。
作为一个例子,我在 R 中使用了 iris 数据集。
library(tidyverse)
iris0 <- iris
iris0 <-
iris0 %>%
group_by(Species) %>%
nest() %>%
mutate(gg1 = purrr::map(data, ~ ggplot(., aes(Sepal.Length, Sepal.Width)) + geom_point())) %>%
mutate(gg2 = purrr::map(data, ~ ggplot(., aes(Sepal.Length, Petal.Width)) + geom_point())) %>%
mutate(g = purrr::map2(gg1, gg2, ~ gridExtra::grid.arrange(.x, .y)))
但是,当我想绘制超过 2 个图时,我无法使用 purrr::pmap 解决,如下面的代码。
iris0 <-
iris0 %>%
group_by(Species) %>%
nest() %>%
mutate(gg1 = purrr::map(data, ~ ggplot(., aes(Sepal.Length, Sepal.Width)) + geom_point())) %>%
mutate(gg2 = purrr::map(data, ~ ggplot(., aes(Sepal.Length, Petal.Width)) + geom_point())) %>%
mutate(gg3 = purrr::map(data, ~ ggplot(., aes(Sepal.Length, Petal.Length)) + geom_point())) %>%
mutate(g = purrr::pmap(gg1, gg2,gg3, ~ gridExtra::grid.arrange(.x, .y, .z)))
> Error in mutate_impl(.data, dots) : Index 1 is not a length 1 vector
nested.data.frame 中是否有解决此问题的方法? 请给我一些建议或答案。
【问题讨论】: