Это кажется простым (и это вероятно), но так как я'м с ума сошла, я'м готов на позор стене.
Как скопировать список объектов N
раз, и заверните ее в список после этого? Что-то вроде этого:
list(foo = "", bar = 0)
для того, чтобы получить:
list(
list(foo = "", bar = 0),
list(foo = "", bar = 0)
)
<ч /> Примечание: для петельки считается изменой
Ну, "репутация" работает (и есть "инструмент") Смотрите, если вы просто обернуть список в другой список...
x <- list(foo = "", bar = 0)
rep(list(x), 2)
Этот трюк также можно использовать, чтобы присвоить значение null, чтобы элемент в список:
x[2] <- list(NULL)
Здесь'ы из двух строк скрипта, который делает то, что вы хотите:
el <- list(foo = "", bar = 0)
dups <- list(el)[rep(1,N)]
Обратите внимание, что это будет работать для любого объекта и"Эль" Ну, не просто список. Он использует хитрость индексации список как вектор, с один кронштейн [обозначения] (и повторяющимся индексам).
Иногда цикл простой:
x <- list(foo = "", bar = 0)
lx <- vector("list", 2)
for (i in 1:length(lx)) lx[[i]] <- x
Если вам нужны отдельные имена можно распределить их на-раз с имена(ЛК) <- ...
, или иначе создать список из пустой и индекс в нем для каждого ЛК[[я]]
- что является менее эффективным, чем до перерасчета.
Немного сложнее способ-lapply на вектор длиной Н
:
lapply(1:2, function(j) x)
Просто положить в манекен с J
для каждого элемента и возвращает переменную тривиально (через сомнительные предположения о масштабах).
Возможно, "реплицировать"? Что-то вроде:
L <- list(foo = "", bar = 0)
W <- replicate(10, L, FALSE)