R: вызов нескольких элементов в списке - PullRequest
0 голосов
/ 25 октября 2018

Я сохранил несколько ggplots в списке и хотел бы построить их, используя пакет cowplot.Но для этого вам нужно вызывать каждую запись в функции plot_grid.

Пример кода:

plot<-vector("list",length=6)
data<-vector("list",length=6)

for(i in 1:6){
  data[[i]]<-data.frame(x=rnorm(10),y=rnorm(10))
 plot[[i]]<-ggplot(data=data[[i]])+geom_point(aes(x=x,y=y))
}

plot_grid(plot[[1]],plot[[2]],plot[[3]],plot[[4]],plot[[5]],plot[[6]])

Я ищу простой способ вызвать несколько записей списка вфункция plot_grid.Если это возможно, было бы полезно иметь возможность вызывать некоторые конкретные записи.

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Вы также можете использовать purrr::invoke (purrr является частью основного тидиверса):

library(tidyverse)
library(cowplot)

invoke(plot_grid, plot)

Примечание: invoke - это обертка вокруг do.call, так что это действительно вариантиз @RLave ответ: выше то же самое, что и

do.call(plot_grid, plot)
0 голосов
/ 25 октября 2018

Использовать do.call:

library(gridExtra) # note that I'm using grid.arrange from the gridExtra library
do.call("grid.arrange", c(plot_list, ncol=2, nrow=3))

с plot_grid:

library(cowplot)
do.call("plot_grid", c(plot, ncol=2, nrow=3))

К вашему сведению не вызывать объект с зарезервированным именем, вместо plot использовать что-тонапример plot_list в качестве имени переменной.

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