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)
我想使用 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)