read.csv преобразование пустого символьного столбца в NA - PullRequest
0 голосов
/ 29 января 2019

Пример:

x <- data.frame(X = c("",""), Y=1:2, stringsAsFactors = F)
write.csv("/tmp/temp.txt", row.names=F, quote=T)

read.csv("/tmp/temp.txt")
   X Y
1 NA 1
2 NA 2

readr::read_csv("/tmp/temp.txt", col_types = list(col_character(), col_double()))
  X         Y
  <chr> <dbl>
1 NA        1
2 NA        2

Я ожидаю, что столбец X будет пустыми строками, но он преобразуется в NA_logical_, несмотря на то, что это поле с кавычками (quote=T).Я не могу найти параметр, который позволяет мне читать столбец X как пустые строки.Проблема возникает и для data.table и readr.

Почему это происходит?

Редактировать: В основном я ищу объяснение, почему это происходит, а не решение.

1 Ответ

0 голосов
/ 29 января 2019

Вы можете изменить аргумент colClasses на read.csv:

x <- read.csv("/tmp/temp.txt", colClasses = c(X = "character"))
str(x)
#'data.frame':  2 obs. of  2 variables:
# $ X: chr  "" ""
# $ Y: int  1 2
...