Подтвердить что ты не робот

Как добавить элементы в список в R (цикл)

Я хотел бы добавить элементы в список в цикле (я точно не знаю, сколько)

Вот так:

l <- list();
while(...)
   l <- new_element(...);

В конце, l[1] будет моим первым элементом, l[2] моим вторым и т.д.

Вы знаете, как действовать?

4b9b3361

Ответ 1

Вы не должны добавлять в свой список, используя c внутри цикла, потому что это может привести к очень медленному коду. В основном, когда вы делаете c(l, new_element), все содержимое списка копируется. Вместо этого вам нужно получить доступ к элементам списка по индексу. Если вы знаете, как долго ваш список будет, лучше всего его инициализировать до этого размера, используя l <- vector("list", N). Если вы этого не сделаете, вы можете инициализировать его, чтобы иметь длину, равную некоторому большому числу (например, если у вас есть верхняя граница числа итераций), а затем просто выберите элементы, отличные от NULL, после завершения цикла. Во всяком случае, основной момент состоит в том, что у вас должен быть индекс для отслеживания элемента списка и добавления с использованием, например,

i <- 1
while(...) {
    l[[i]] <- new_element
    i <- i + 1
}

Для получения дополнительной информации см. Patrick Burns The R Inferno (глава 2).

Ответ 2

Следующее добавляет элементы в список в цикле.

l<-c()
i=1

while(i<100) {

    b<-i
    l<-c(l,b)
    i=i+1
}