5

我正在尝试将一个使用多个 NA 值(特别是“N/A”和“n/a”)的 Excel 表读入 R。如果我尝试给 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

关于如何在两个字符串都转换为 NA 的情况下读取此内容的任何想法?或者,一旦数据在 R 中,我是否最好进行查找/替换?

4

1 回答 1

4

正如你所收集的,read_excel不接受多个值。考虑gdata::read.xls改用。

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

编辑请注意,您需要安装 perl 才能运行它。如果您在 Windows 上,您可能需要perl="C:/Perl/bin/perl.exe"在调用read.xls.

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

devtools::install_github("tidyverse/readxl")
readxl::read_excel(path = "file.xlsx", na = c("N/A", "n/a"))
于 2017-03-06T21:01:37.727 回答