Это ошибка в 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
.Я добавил этот пример. Вы можете отслеживать / комментировать проблему здесь .