R 编程:cv.lm 分类列中有 NA

R programming: cv.lm with NAs in a categorical column

我想使用 DAAG 库中的 cv.lm 函数为数据框学习 lm。我尝试了下一个代码(显然这是这个问题的玩具示例):

> my data
x    y z
1    a  3.0 1
2    a 10.5 2
3    b 10.4 3
4    b  8.3 4
5    c 11.8 5
6 <NA> 11.6 6

> cv.lm(m, y ~ ., m=3)

问题是我发现在分类列(一个因子)中有 NA 会产生下一个错误:

Error in `[<-.data.frame`(`*tmp*`, , ynam, value = c(3, 10.5, 10.4, 8.3,  :
replacement has 5 rows, data has 6

我通过将 mydata 减少到只有两列(因子和 y)找到了它。

有没有办法在 cv.lm 中处理 NA?

lm 函数确实处理了 w/o 个问题。

您可以使用 na.omit 重现 lm 的 NA 处理。

所以:cv.lm(data=na.omit(m), y ~ ., m=3)