Вызвать вектор имен для 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)