如何忽略R中的空值?

发布于 2024-09-28 16:12:21 字数 882 浏览 3 评论 0原文

我有一个数据集,其中一个字段中有一些空值。当我尝试运行线性回归时,它将字段中的整数视为类别指示器,而不是数字。

例如,对于不包含空值的字段...

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淡淡離愁欲言轉身 2024-10-05 16:12:21

您可以忽略空值,如下所示:

a[!is.null(a$num_ays),]

You can ignore null values like so:

a[!is.null(a$num_ays),]
淡墨 2024-10-05 16:12:21

并以 Shane 的答案为基础:您可以在 lm()data= 参数中使用它:

summary(lm(rank ~ num_ays, data=a[!is.null(a$num_ays),]))

And to build on Shane's answer: you can use that in the data= argument of lm():

summary(lm(rank ~ num_ays, data=a[!is.null(a$num_ays),]))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文