我有一个多元回归模型.我想将拟合值和残差添加到原始值中data.frame作为两个新列.我怎样才能做到这一点?我在R中的模型是这样的:
BD_lm <- lm(y ~ x1+x2+x3+x4+x5+x6, data=BD)
summary(BD)
Run Code Online (Sandbox Code Playgroud)
我也得到了合适的价值
BD_fit<-fitted(BD_lm)
Run Code Online (Sandbox Code Playgroud)
但我想将此BD_fit值作为列添加到原始数据中BD.我不知道怎么回事.当我试着打电话时BD_fit,它只给了我很多数字.我正在运行一个大型数据集,所以很难在这里列出所有这些数据集.
G. *_*eck 20
假设:
fm <- lm(demand ~ Time, BOD)
Run Code Online (Sandbox Code Playgroud)
然后尝试这个:
cbind(BOD, resid = resid(fm), fitted = fitted(fm))
Run Code Online (Sandbox Code Playgroud)
或这个:
BOD$resid <- resid(fm)
BOD$fitted <- fitted(fm)
Run Code Online (Sandbox Code Playgroud)
添加:
如果您有NA值,demand那么您的拟合值和残差将与数据行数的长度不同,这意味着上述条件不起作用.在这种情况下使用:na.exclude像这样:
BOD$demand[3] <- NA # set up test data
fm <- lm(demand ~ Time, BOD, na.action = na.exclude)
Run Code Online (Sandbox Code Playgroud)
na.exclude将使用NA值自动填充预测和残差,以使它们与原始数据具有相同的长度.现在前面的行应该可行.