如何索引数据框以便可以扩充它?

时间:2017-05-30 12:38:44

标签: r dataframe indexing

我正在尝试为多个主题的数据框添加残差的新组件。我可以像这样单独做:

subjectnew<-subset(Abc, condition=="gram" & subject==51)
subjectnew$resTime<-residuals(AbcModel[[51]])

但是,如果我在循环中运行它,尝试扩充原始数据帧:

for (q in ids) {
   Abc[which(Abc$condition=="gram" & Abc$subject==q),]$resTime<-residuals(AbcModel[[q]])
}

...其中ids是33个特定主题(即ids<-c(51,52,...)),我收到以下错误:

There were 33 warnings.
Warning messages:
1: In `[<-.data.frame`(`*tmp*`, which(Abc$condition ==  ... :
  provided 18 variables to replace 17 variables
2: In `[<-.data.frame`(`*tmp*`, which(Abc$condition ==  ... :
  provided 18 variables to replace 17 variables
...

我是否错误地使用which索引我的数据框?

1 个答案:

答案 0 :(得分:0)

可能是在for循环中没有正确创建resTime列,因为它只是尝试为某些行分配值。也许在运行for循环之前创建列有助于解决问题。

subjectnew$resTime <- NA