2

我正在处理一个巨大的 Excel 文件(数千列),研究人员使用了各种方法对 NA 进行编码,包括 -100。我将如何导入这个?我试过了

library("openxlsx")
df <- read.xlsx("file.xlsx", sheet = 1, colNames = TRUE, detectDates=TRUE, skipEmptyRows=TRUE, na.strings=c("NA", "N/A", "-100", "-"))

但是,-100 仍然显示为 -100,而不是 NA。

4

1 回答 1

3

这似乎是openxlsx::read.xlsx. 我创建了一个.xlsx包含两列的小文档:

在此处输入图像描述

然后尝试用read.xlsx. 这个na.strings论点似乎不太奏效。"N/A"它用两个值(不需要)省略最后一行,并保持"-99"原样而不是NA根据需要替换它们:

library(openxlsx)
read.xlsx("test.xlsx", na.strings = c("N/A", "-99"))
#   num  char
# 1   1 hello
# 2 -99   -99
# 3   3     3

# for comparison, without na.strings
read.xlsx("test.xlsx")
#   num  char
# 1   1 hello
# 2 -99   -99
# 3   3     3
# 4 N/A   N/A

readxl软件包做得更好:

library(readxl)
read_excel("test.xlsx", na = "-99")
# # A tibble: 4 x 2
#     num char 
#   <dbl> <chr>
# 1     1 hello
# 2    NA NA   
# 3     3 3    
# 4    NA NA   

这是使用新安装的openxlsx4.1.0readxl版和 1.2.0 版(当前版本为 1.3.0)。


openxlsxgithub 页面有一个关于na.strings. 我添加了这个例子。您可以在此处跟踪/评论该问题

于 2019-02-28T15:53:12.213 回答