#r #list
#r #Список
Вопрос:
У меня есть следующий код:
child_tracks <- list()
for(i in 1:106)
{
for(j in 1:5)
{
child_tracks[[i]][[j]] <-
all_samples[[i]][sample(nrow(all_samples[[i]]),length_breakups[[i]][[j]]),]
}
}
Как и выше, «all_samples» — это список фреймов данных, а «length_breakups» — это список списков.
Когда я назначаю ему вычисление, оно выдает ошибку: нижний индекс выходит за пределы. Хотя единственная переменная может храниться, список не может. Например:
temp <-
all_samples[[i]][sample(nrow(all_samples[[i]]),length_breakups[[i]][[j]]),]
child_tracks[[i]][[j]] <-
all_samples[[i]][sample(nrow(all_samples[[i]]),length_breakups[[i]][[j]]),]
Первое работает, второе — нет. Я видел, что
все определения классов в порядке, как и диапазоны цикла «for».
Просто не обойти это. Есть комментарии?
Ответ №1:
Инициализируйте размер списка:
child_tracks <- array(list(), c(106,5))
for(i in 1:106)
{
for(j in 1:5)
{
child_tracks[[i]][[j]] <-
all_samples[[i]][sample(nrow(all_samples[[i]]),length_breakups[[i]][[j]]),]
}
}