Как добавить строки для l oop в R? - PullRequest
0 голосов
/ 07 мая 2020

Допустим, я пытаюсь создать фрейм данных (df2), который имеет значение в два раза больше, чем другой фрейм данных (df1). Таким образом, два фрейма данных имеют точно такие же столбцы. Также предположим, что в df1 есть 10 объектов. Вот мой код.

library(data.table)
for (i in (1:10) {
  id <- df1$ID[i]
  newAttr1 <- df1$attr1[i] * 2
  newAttr2 <- df1$attr2[i] * 2
  newAttr3 <- df1$attr3[i] * 2

  NewRow <- list(id, newAttr1, newAttr2, newAttr3)
  rbindlist(list(df2, NewRow))
}

Я думал, это должно сработать, но почему-то в df2 НЕТ объектов. В чем проблема?

Заранее большое спасибо :)

1 Ответ

1 голос
/ 07 мая 2020

Может быть, это сработает.

library(data.table)
df2 <- NULL

for (i in (1:10) {
id <- df1$ID[i]
newAttr1 <- df1$attr1[i] * 2
newAttr2 <- df1$attr2[i] * 2
newAttr3 <- df1$attr3[i] * 2

# NewRow <- list(id, newAttr1, newAttr2, newAttr3)
# rbindlist(list(df2, NewRow))

df2 <- rbind(df2, data.frame(id, newAttr1, newAttr2, newAttr3)) 

}

Однако в данном случае я думаю, что лучше сделать так, как предлагает Ронак Шах .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...