список фреймов данных в R: проблема с назначением

#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]]),]

     }
   }