Использование для l oop, чтобы заполнить предопределенную пустую матрицу в r? - PullRequest
0 голосов
/ 30 марта 2020

Я использую функцию для получения данных с нашего сервера организации, которые затем должны храниться в пустых data.frame через for loop. Данные за период с 01 марта по 31 мая (92 дня) для 130 различных сайтов (130 столбцов для сайтов и 1 столбец для даты).

tss <- as.data.frame(matrix(NA, 92,131))

Сама функция работает. For для l oop также работает для первых 14 станций, но затем выдает следующую ошибку

> Error in `[<-.data.frame`(`*tmp*`, , i + 1, value = c(0, 0, 0, 0, 0,
> 0,  :    replacement has 90 rows, data has 92

Для l oop, которую я использую для заполнения пустой матрицы, выглядит следующим образом

for (i in 1:nlines) {
      tss1 <- fromAquarius(id[i],Data[i],Stage[i])
  tss[,i+1]<-tss1$Daily_sum
  rm(tss1)
    }

Есть ли способ запустить код и заполнить матрицу доступными данными и оставить ячейку как NA, если при движении вперед нет данных? Может быть другой способ справиться с ошибкой.

1 Ответ

0 голосов
/ 30 марта 2020

Не зная подробностей fromAquarius, трудно понять, почему это происходит. Тем не менее, мы можем добавить чек, который добавляется как новый столбец, только если длина добавляемых значений точно равна количеству строк, или добавьте NA.

for (i in 1:nlines) {
   tss1 <- fromAquarius(id[i],Data[i],Stage[i])
   tss[,i+1]<-tss1$Daily_sum[1:92]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...