【问题标题】:Why do I only receive "NA" for results when filtering a variable in my dataset?为什么在我的数据集中过滤变量时我只收到“NA”的结果?
【发布时间】:2019-09-22 20:51:30
【问题描述】:

我正在尝试过滤 wooldridge 数据集 gpa1 所以 job19 只显示满足 19 小时的观察结果。我运行了命令

library(wooldridge)
filter(gpa1, job19 == 1) 

查看job19 == 1 的所有实例,所有观察结果都显示为NA。有谁知道为什么会这样?我事先查看了gpa1 变量,而job19 是一个虚拟变量,因此所有观察结果都列为10,所以我应该有一些结果,对吧?我还尝试过滤掉job19 == 0 的实例,但我得到了相同的结果。

【问题讨论】:

  • 你能贴出所有代码吗? Filter() 是多个包中的一个函数。您可能想检查您正在使用哪个版本的过滤器,或者(甚至更好)质量,例如stats::filter() 或 dplyr::filter()
  • 使用dplyr::filter(gpa1, job19 == 1) 我无法重现任何错误。投票结束,因为离题/不可复制。
  • akrun,“列的类”是什么意思?我运行了你建议的代码,它说job19的观察结果都是整数,你指的是这个吗?
  • Jeremy Miles,我在尝试运行 dplyr::filter() 代码时出错,并且 stats::filter() 代码再次生成了所有 NA,不过感谢您的建议!
  • 我认为 JeremyMiles 是对的。

标签: r filtering resultset


【解决方案1】:

Econ465,只需加载软件包并正确使用它们的功能。

library(wooldridge)
library(dplyr)
data("gpa1")
# View(gpa1)

df <- gpa1 %>% 
  dplyr::filter(job19 == 1) 
head(df, 10)

> head(df, 10)
   age soph junior senior senior5 male campus business engineer colGPA hsGPA ACT job19 job20 drive bike walk voluntr PC greek car siblings bgfriend
1   20    0      1      0       0    0      0        1        0    3.0   3.6  26     1     0     0    0    1       0  0     0   1        1        0
2   19    1      0      0       0    1      1        1        0    3.5   3.5  27     1     0     0    0    1       0  0     0   0        1        0
3   22    0      0      0       1    0      0        0        0    2.7   3.0  22     1     0     1    0    0       0  1     0   0        1        1
4   22    0      0      0       1    0      0        0        0    2.7   3.0  21     1     0     1    0    0       0  0     0   1        1        1
5   19    1      0      0       0    0      0        1        0    3.8   4.0  27     1     0     0    0    1       0  1     0   0        1        0
6   21    0      0      1       0    1      0        1        0    2.8   3.0  19     1     0     0    0    1       0  0     0   1        1        1
7   21    0      0      1       0    0      1        1        0    3.0   3.5  23     1     0     0    0    1       0  1     0   1        1        1
8   20    0      1      0       0    0      0        1        0    2.6   3.5  25     1     0     1    0    0       0  0     1   1        1        1
9   22    0      0      1       0    1      0        0        1    2.7   3.0  23     1     0     0    0    1       0  0     0   1        1        0
10  21    0      0      1       0    0      1        0        0    3.0   4.0  25     1     0     0    1    0       1  1     1   1        1        1
   clubs skipped alcohol gradMI fathcoll mothcoll
1      1     0.0    1.00      1        1        1
2      0     0.0    0.00      0        0        0
3      0     3.0    3.00      1        1        1
4      1     2.0    2.50      1        1        1
5      1     0.5    0.75      1        0        1
6      0     2.0    1.00      1        0        0
7      1     0.0    1.00      1        0        1
8      1     3.0    2.00      1        1        1
9      1     1.0    1.00      1        0        1
10     1     0.0    0.00      1        0        0

请参阅下面的链接。

Filter function in dplyr in R not working

【讨论】:

  • install.packages("dplyr")install.packages("tidyverse")
  • 参见:?head?View?print 函数。您可以使用View(df)print(df)
  • 如果您认为答案是肯定的,您可以勾选接受答案吗?
猜你喜欢
  • 2017-09-05
  • 2023-04-01
  • 2018-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
  • 2021-10-31
相关资源
最近更新 更多