示例:
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
也会出现此问题。
为什么会这样?
编辑:我主要是在寻求解释为什么会发生这种情况,而不是解决方案。
答案 0 :(得分:2)
您可以将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