2017-05-30 39 views
0

我正在嘗試爲多個主題的我的數據框添加一個殘差的新組件。我可以單獨做到這一點,像這樣:如何爲數據框編制索引以便增強它?

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

可能是因爲resTime列未在for循環內正確創建,因爲它只嘗試將值分配給某些行。也許在使用'subjectnew $ resTime < - NA'運行for循環之前創建列將有助於清除問題。 –

+0

使用'Abc $ resTime <-NA'在循環前添加空列解決了問題;謝謝:)如果您提交的答案與@MattJewett相同,我會將其標記爲已接受。 – Xophmeister

回答

0

可能是因爲resTime列未在for循環內正確創建,因爲它只嘗試將值分配給某些行。在運行for循環之前創建列可能有助於解決問題。

subjectnew$resTime <- NA 
相關問題