在R中的线性模型中包括NA

时间:2017-04-03 20:07:16

标签: r na lm

我有一个关于如何在回归后将NA值包含在向量中的问题。

这是我的代码:

m <- c(100, 108, 105, 120)
n <- c(5, NA, 10, 8)

b <- lm(n~m)$fitted.values

# This returns:

       1        3        4 
6.961538 7.384615 8.653846 

我还需要包含第2列,无论是零还是NA,因此它包含4列而不是3列。有关如何执行此操作的任何建议吗?

1 个答案:

答案 0 :(得分:1)

为了使您提取的拟合值也包含NA(即4列),您可以在na.exclude内使用lm()

na.exclude针对预测变量和标准进行了大小写删除,在这种情况下,函数fitted()将使用NA填充输出

所以你的代码看起来像这样

m <- c(100, 108, 105, 120)
n <- c(5, NA, 10, 8)

# ordinary linear model
b <- lm(n~m, na.action = na.exclude)

# extract elements from a linear model fit
fitted(b)

# And output of NA column
fitted(b)
       1        2        3        4 
6.961538       NA 7.384615 8.653846