我尝试使用.lm.fit
来拟合线性回归(因为它比lm
更快)。我在NA
中有X
:
set.seed(1)
df <- data.frame(y = rnorm(100),batch = sample(1:3, 100, replace = T), phase = sample(c("A", "B", "C"), 100, replace = T))
df$batch <- factor(df$batch)
df$phase <- factor(df$phase)
将NA
介绍给df$phase
:
df$phase[sample(1:100, 10, replace = F)] <- NA
我使用na.action='na.pass'
来创建X
X <- model.matrix(lm(formula = as.formula("y ~ batch + phase"), data = df), na.action = 'na.pass')
但是.lm.fit(y = df$y, x = X)
会抛出错误:
.lm.fit中的错误(y = df $ y,x = X):&#39; x&#39;
中的NA / NaN / Inf
并且不接受任何na.action选项。例如,使用:
.lm.fit(y = df$y, x = X, na.action = 'na.exclude')
我明白了:
.lm.fit中的错误(y = df $ y,x = X,na.action =&#34; na.exclude&#34;): 未使用的参数(na.action =&#34; na.exclude&#34;)
有没有办法让.lm.fit
跳过NA
个样本,并为这些residuals
个样本填充NA
NA
个?{/ p >