如何忽略R中的空值?
我有一个数据集,其中一个字段中有一些空值。当我尝试运行线性回归时,它将字段中的整数视为类别指示器,而不是数字。
例如,对于不包含空值的字段...
summary(lm(rank ~ num_ays, data=a)),
返回:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 10.607597 0.019927 532.317 < 2e-16 ***
num_ays 0.021955 0.007771 2.825 0.00473 **
但是当我在具有空值的字段上运行相同的模型时,我得到:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.225e+01 1.070e+00 11.446 < 2e-16 ***
num_azs0 -1.780e+00 1.071e+00 -1.663 0.09637 .
num_azs1 -1.103e+00 1.071e+00 -1.030 0.30322
num_azs10 -9.297e-01 1.080e+00 -0.861 0.38940
num_azs100 1.750e+00 5.764e+00 0.304 0.76141
num_azs101 -6.250e+00 4.145e+00 -1.508 0.13161
处理此问题的最佳和/或最有效的方法是什么,以及权衡是什么?
I have a data set with some null values in one field. When I try to run a linear regression, it treats the integers in the field as category indicators, not numbers.
E.g., for a field that contains no null values...
summary(lm(rank ~ num_ays, data=a)),
Returns:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 10.607597 0.019927 532.317 < 2e-16 ***
num_ays 0.021955 0.007771 2.825 0.00473 **
But when I run the same model on a field with null values, I get:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.225e+01 1.070e+00 11.446 < 2e-16 ***
num_azs0 -1.780e+00 1.071e+00 -1.663 0.09637 .
num_azs1 -1.103e+00 1.071e+00 -1.030 0.30322
num_azs10 -9.297e-01 1.080e+00 -0.861 0.38940
num_azs100 1.750e+00 5.764e+00 0.304 0.76141
num_azs101 -6.250e+00 4.145e+00 -1.508 0.13161
What's the best and/or most efficient way to handle this, and what are the tradeoffs?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以忽略空值,如下所示:
You can ignore null values like so:
并以 Shane 的答案为基础:您可以在
lm()
的data=
参数中使用它:And to build on Shane's answer: you can use that in the
data=
argument oflm()
: