R 无法识别丢失的数据

R won't recognize missing data

我有一个包含多列的数据集。在某些列中,所有值都缺失,而在其他列中,只有几个值。导入到 R 时,缺失值仅显示为空单元格而不是 NA。 这导致的问题是,当我想使用 na.omit() 函数删除 NA 值时,什么也没有发生。 我该如何处理这个问题?

您可以使用以下代码将所有空值替换为 NA

library(dplyr)
your_data_with_NA <- your_data %>% 
  mutate_all(na_if, "")

最简单的方法通常是在导入数据时修复此问题。大多数用于导入数据的函数都有一些参数来指定应将哪些值解释为 NA,例如:

  • read.csv 等:na.strings
  • readr::read_csv 等:na
  • readxl::read_excel 等:na

只需将此参数设置为 """ " 或 R 未解释为 NA 的任何值。

如果这不适合您,您可以使用 NA 替换空白值:

library(dplyr)

df %>% 
  mutate(
    across(
      everything(),
      ~na_if(.x, "")
    )
  )

Note that mutate(across(everything())) has superseeded mutate_all but does the same.


数据

df <- mtcars %>% head()

df[1, 1] <- ""