使用 read_excel(na = ) 如何指定多个 NA 字符串?

Wat*_*ake 5 r readxl

我正在尝试将一个 Excel 表格读入 R,该表格对 NA 使用多个值(特别是“N/A”和“n/a”)。如果我尝试给 na= 一个字符串列表,它会抛出一个错误:

read_excel(path = "file.xlsx",
           na = "N/A") #This works just fine

read_excel(path = "file.xlsx",
           na = c("N/A", "n/a"))

Error in eval(substitute(expr), envir, enclos) : expecting a single value
Run Code Online (Sandbox Code Playgroud)

关于如何在将两个字符串转换为 NA 的情况下读取它的任何想法?或者我最好在数据在 R 中后进行查找/替换?

Joh*_*son 4

正如您所收集的,read_excel不接受多个值。考虑使用gdata::read.xls代替。

gdata::read.xls("file.xlsx", na.strings = c("N/A", "n/a"))
Run Code Online (Sandbox Code Playgroud)

编辑:请注意,您需要安装 perl 才能运行它。perl="C:/Perl/bin/perl.exe"如果您使用的是 Windows,则可能需要在调用中指定类似的内容read.xls。

编辑2:正如@r2evans在评论中建议的,开发版本readxl支持多个na值:

devtools::install_github("tidyverse/readxl")
readxl::read_excel(path = "file.xlsx", na = c("N/A", "n/a"))
Run Code Online (Sandbox Code Playgroud)