Я повторю, что lapply
является правильным ответом в этом случае.Но есть много сценариев, где необходим цикл, и это хороший вопрос.
Списки R не нужно объявлять как пустые заранее, поэтому самый простой способ сделать это - просто объявить'RES
как пустой список:
RES <- list()
for (i in 1:1000) {
RES[i] = kmeans(iris,i)
}
R будет просто расширять список для каждой итерации.
Кстати, это работает даже для непоследовательной индексации:
newList <- list()
newList[5] <- 100
возвращает список со слотами с 1 по 4, обозначенными как NULL, и номером 100 в пятом слоте.
Это все лишь для того, чтобы сказать, что списки очень разных зверей в R, чем атомные векторы.