Bir döngü içinde bir listeye eleman eklemek istiyorum (tam olarak kaç tane olduğunu bilmiyorum)
Bunun gibi:
l <- list();
while(...)
l <- new_element(...);
Sonunda, l[1]
benim ilk öğem, l[2]
benim ikinci öğem olur ve bu böyle devam eder.
Nasıl ilerleyeceğinizi biliyor musunuz?
Döngü içinde c
kullanarak listenize ekleme yapmamalısınız, çünkü bu çok çok yavaş bir koda neden olabilir. Temel olarak c(l, new_element)
yaptığınızda, listenin tüm içeriği kopyalanır. Bunun yerine, listenin elemanlarına indekse göre erişmeniz gerekir. Listenizin ne kadar uzun olacağını biliyorsanız, l <- vector("list", N)
kullanarak listeyi bu boyutta başlatmak en iyisidir. Eğer bilmiyorsanız, uzunluğu büyük bir sayıya eşit olacak şekilde başlatabilir (örneğin, yineleme sayısı için bir üst sınırınız varsa) ve döngü bittikten sonra NULL olmayan öğeleri seçebilirsiniz. Her neyse, temel nokta, liste elemanını takip etmek için bir indekse sahip olmanız ve bunu kullanarak eklemeniz gerektiğidir, örneğin
i <- 1
while(...) {
l[[i]] <- new_element
i <- i + 1
}
Daha fazla bilgi için Patrick Burns' The R Inferno (Bölüm 2)'ye bakabilirsiniz.