【问题标题】:Using read_excel(na = ) how do you specify more than one NA character string?使用 read_excel(na = ) 如何指定多个 NA 字符串?
【发布时间】:2017-07-26 21:28:14
【问题描述】:

我正在尝试将一个使用多个 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 中,我最好进行查找/替换?

【问题讨论】:

  • 根据readxl/issues/272,github版本支持“multiple-na values”。 (我还没有测试过。)
  • 感谢 r2evans,github 版本现在运行良好
  • readxl::read_excel from readxl version 1.1.0 现在提供此功能。

标签: r readxl


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 感谢您的持续帮助,我只是花了一段时间安装 perl,设置路径并运行 installXLSXsupport(),仍然给我一个空数据框。但是,如果这个 github 版本可以工作,那将是我想要的更多,现在下载。谢谢!
  • 这非常有效。花了一点时间安装包(没有 Rtools),然后我不得不手动删除 Rccp,因为旧版本阻止了安装(这个答案有帮助:stackoverflow.com/questions/26570912/…)。但现在 read_excel 正在做我需要的一切,再次感谢!
猜你喜欢
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
相关资源
最近更新 更多