Я хотел бы добавить элементы в список в цикле (я точно не знаю, сколько)
Вот так:
l <- list();
while(...)
l <- new_element(...);
В конце, l[1] будет моим первым элементом, l[2] моим вторым и т.д.
Вы знаете, как действовать?
Ответ 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).