Список функций R с неопределенной длиной в качестве аргумента - PullRequest
0 голосов
/ 02 января 2019

Я использую функцию multiplot этого веб-сайта

Эта функция принимает в качестве аргумента неограниченное количество графиков и строит их вместе. С помощью приведенного ниже кода я могу построить, например, 4 графика в 2 столбца.

library(ggplot2)
n = 4
p = lapply(1:n, function(i) {
    ggplot(data.frame(x = 1:10,y = rep(i,10)), aes(x = x, y = y)) +
    geom_point()
})

multiplot(p[[1]],p[[2]],p[[3]],p[[4]],cols = 2)

Как я могу сделать, если у меня есть неопределенное количество участков n?

Я уже пробовал такие вещи, как

multiplot(p,cols = 2)
do.call(multiplot, list(p,cols = 2))

но это не дает желаемого результата

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Со вторым вариантом вы тоже были близки:

do.call(multiplot, c(p, cols = 2))

делает работу с

length(list(p, cols = 2))
# [1] 2
length(c(p, cols = 2))
# [1] 5

То есть list(p, cols = 2) составляет список из двух компонентов: список p и целое число 2, в то время как вы хотите расширить p, добавив cols = 2, и нам это нужно. (Возможно, это не сразу очевидно, но название ?c действительно говорит Объединить значения в вектор или Список .)

0 голосов
/ 02 января 2019

возможно multiplot(plotlist = p)! веселит

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