Как написать код повторяющихся нескольких графиков внутри ggarrange в R - PullRequest
0 голосов
/ 10 марта 2020

Есть ли способ эффективно написать код для повторяющегося кода внутри ggarrange? Мой текущий код выглядит уродливо и отнимает много времени, так как мне приходится печатать от z1 до z16.

ggarrange(z1, z2, z3, z4, z5, z6, z7, z8, z9, z10, z11, z12, z13, z14, z15, z16, nrow = 4, ncol = 4, labels = c(1:16))

Я пытался:

combined = noquote(paste0("z", 1:16))

ggarrange(combined, nrow = 4, ncol = 4, labels = c(1:16))

Warning message:
In as_grob.default(plot) :
  Cannot convert object of class noquote into a grob.

1 Ответ

2 голосов
/ 10 марта 2020

Как вы попали в первую очередь с этими 16 различными переменными? Было бы легче работать в R, если бы вы имели эти связанные значения в списке. Переменные с индексами в именах как знак того, что вы, вероятно, не делаете что-то очень R-образным образом

Мы можем «исправить» проблему, используя mget(), чтобы поместить их всех в список. Затем мы можем передать этот список параметру plotlist= ggarrange. Например,

combined <- mget(paste0("z", 1:16))
ggarrange(plotlist=combined, nrow = 4, ncol = 4, labels = 1:16)

Использование noquote() не превращает строки в переменные. Это просто чисто косметическая функция c, которая запрашивает консоль для подавления кавычек при печати значений.

...