将 -100 导入为 NA
Importing -100 as NA
我正在处理一个巨大的 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。
这似乎是 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
这是使用全新安装的 openxlsx
4.1.0 版和 readxl
1.2.0 版(当前版本为 1.3.0)。
openxlsx
github 页面有一个关于 na.strings
的未决问题。我添加了这个例子。 You can track/comment on the issue here.
我正在处理一个巨大的 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。
这似乎是 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
这是使用全新安装的 openxlsx
4.1.0 版和 readxl
1.2.0 版(当前版本为 1.3.0)。
openxlsx
github 页面有一个关于 na.strings
的未决问题。我添加了这个例子。 You can track/comment on the issue here.