Вызвать вектор имен для grid.arrange

Допустим, у меня есть список под названием ALL с 40 элементами, каждый из которых является ggplot,

если я хочу построить один из них, я могу сделать

ALL[[1]] 

или же

print(ALL)

если я хочу построить их все вместе, я могу сделать

grid.arrange(ALL[[1]] ,ALL[[2]], ALL[[3]], ....  )

или же

grid.arrange(ALL[[names(ALL)[1]]] ,ALL[[names(ALL)[2]]], ALL[[names(ALL)[3]]], ....  )

Это действительно утомительно со многими элементами списка. Но я не могу понять, как просто позвонить grid.arrange построить все участки. Я не хочу apply по списку, потому что я хочу несколько участков на одной странице.

Вызов 40 участков grid.arrange может показаться много, но это небольшие участки, и даже для 1:10 участков на странице это много печатать!!!!

1 ответ

Решение

Всякий раз, когда у вас есть список (здесь ваш ALL) элементы которого являются аргументами, которые вы хотите передать функции (здесь grid.arrange), ты можешь использовать do.call,

Это должно сделать трюк:

## Equivalent to grid.arrange(ALL[[1]], ALL[[2]], ..., ALL[[n]])
do.call(grid.arrange, ALL)
Другие вопросы по тегам