residuals()函数错误:替换有x行,数据有y行

时间:2015-10-29 01:44:16

标签: r replace

我有一个数据集,其中包含许多人阅读的每个单词的阅读时间。

我正在尝试计算数据中每个人的阅读时间残差。单词长度和表达顺序(特定单词)是计算每个人的回归的因素。

读取时间是对数转换的(logRT),字长由nchar()计算。演示顺序也进行了对数转换。

model1<-lmer(logRT~wlen+log(order)+(1|subject), data=mydata)

然后,我尝试通过执行以下操作为每个数据点获取剩余列,

mydata$logResid<-residuals(model1)

然后,我收到此错误。

Error in `$<-.data.frame`(`*tmp*`, "LogResid", value = c(0.145113408056189,  : 
replacement has 30509 rows, data has 30800

有没有人有任何建议?我完全糊涂了。由于这是我每天都在做的分析,到目前为止没有这样的错误。这更令人困惑。

1 个答案:

答案 0 :(得分:2)

我会说你应该试试

model1 <- lmer(logRT~wlen+log(order)+(1|subject), data=mydata,
               na.action=na.exclude)

看看是否有帮助;它应该在适当的位置填写NA值。

来自?na.exclude

  

...当使用'na.exclude'时残差和        通过插入'NA'将预测填充到正确的长度        对于'na.exclude'省略的案例。