我是一名R语言的初学者。这里有一个非常简单的代码,我试图保存残差项:
# Create variables for child's EA:
dat$cldeacdi <- rowMeans(dat[,c('cdcresp', 'cdcinv')],na.rm=T)
dat$cldeacu <- rowMeans(dat[,c('cucresp', 'cucinv')],na.rm=T)
# Create a residual score for child EA:
dat$cldearesid <- resid(lm(cldeacu ~ cldeacdi, data = dat))
我收到了以下信息:
Error in `$<-.data.frame`(`*tmp*`, cldearesid, value = c(-0.18608488908881, :
replacement has 366 rows, data has 367
我搜索了这个错误,但找不到任何能解决这个问题的方法。此外,我为妈妈的EA创建了完全相同的代码,它很好地保存了残差,并且没有出现任何错误。如果有人能帮我解决这个问题,我会非常感激。
na.omit
会从数据框中删除完整的行,如果该行中至少有一列带有NA
。lm
也会这样做,因为它在内部调用了na.omit
。在运行na.omit
之前,请确保在回归中排除您不需要的列。 - LyzandeR