【问题标题】:na.omit not removing NA (data is numerical)na.omit 不删除 NA(数据是数字)
【发布时间】:2017-06-01 19:19:08
【问题描述】:

我刚刚合并了两个数据框,并试图删除值列中带有 NA 的行。到目前为止,我有..

t.dup.rights <- merge(dataframe1, dataframe2, by = "ID", all = T)
na.omit(tdup.rights$value)

值列的值为 1 或 NA。我用过

is.numeric(t.dup.rights$value)

仔细检查 r 是否认为这是一个因素。在我运行 na.omit 函数后,数据框似乎保持不变。我正在处理一个特别大的数据集(200K obs)。我也在使用 dplyr 包。

【问题讨论】:

  • tdup.rights[!is.na(tdup.rights$value),] - 你也可以使用merge( ..., all = F)

标签: r dplyr na


【解决方案1】:

您可以使用tidyr::drop_na

library(dplyr)
library(tidyr)

df <- data_frame(
  x = sample(c(NA, 1, 2), 10, replace = TRUE),
  y = sample(c(NA, 1, 2), 10, replace = TRUE)
)

df

#> # A tibble: 10 x 2
#>        x     y
#>    <dbl> <dbl>
#> 1     NA    NA
#> 2      1     2
#> 3      2     2
#> 4     NA     1
#> 5      2    NA
#> 6      1    NA
#> 7     NA    NA
#> 8      2     2
#> 9      1    NA
#> 10    NA     2

drop_na(df, x)

#> # A tibble: 6 x 2
#>       x     y
#>   <dbl> <dbl>
#> 1     1     2
#> 2     2     2
#> 3     2    NA
#> 4     1    NA
#> 5     2     2
#> 6     1    NA

【讨论】:

  • 谢谢!完美运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-26
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多