met*_*oia 2 regression r plyr dataframe
我正在寻找一种方法将lm残差绑定到输入数据集.该方法必须添加NA缺失残差,残差应对应于正确的行.
样本数据:
N <- 100
Nrep <- 5
X <- runif(N, 0, 10)
Y <- 6 + 2*X + rnorm(N, 0, 1)
X[ sample(which(Y < 15), Nrep) ] <- NA
df <- data.frame(X,Y)
residuals(lm(Y ~ X,data=df,na.action=na.omit))
Run Code Online (Sandbox Code Playgroud)
残差应该与df绑定.
只需更改na.action为na.exclude:
residuals(lm(Y ~ X, data = df, na.action = na.exclude))
Run Code Online (Sandbox Code Playgroud)
na.omit并且na.exclude两者都针对预测因子和标准进行了个案删除.它们的不同之处在于,提取器的功能类似于residuals()或fitted()将使用NA填充其输出以用于省略的情况na.exclude,因此具有与输入变量相同长度的输出.
(这是这里找到的最佳解决方案)
"[<-"(df, !is.na(df$X), "res", residuals(lm(Y ~ X,data=df,na.action=na.omit)))
Run Code Online (Sandbox Code Playgroud)
会成功的。