Eu gostaria de adicionar elementos a uma lista em loop (eu não sei exatamente quantos)
Assim:
l <- list();
while(...)
l <- new_element(...);
No final, l[1]
seria meu primeiro elemento, l[2]
meu segundo e assim por diante.
Você sabe como proceder?
Você não deve adicionar à sua lista utilizando c' dentro do loop, porque isso pode resultar em código muito lento. Basicamente, quando você faz
c(l, new_element), todo o conteúdo da lista é copiado. Ao invés disso, você precisa acessar os elementos da lista por índice. Se você souber quanto tempo sua lista vai ser longa, é melhor inicializá-la para este tamanho utilizando
l <- vector("list", N)`. Se você não't você pode inicializá-lo para ter comprimento igual a um grande número (por exemplo, se você tiver um limite superior no número de iterações) e então apenas escolha os elementos não-NULL depois que o loop tiver terminado. De qualquer forma, o ponto básico é que você deve ter um índice para manter o controle do elemento da lista e adicionar usando, por exemplo, o seguinte
i <- 1
while(...) {
l[[i]] <- new_element
i <- i + 1
}
Para mais informações veja Patrick Burns' The R Inferno (Capítulo 2).