首页 > 解决方案 > 空白空间在 fread 中未被识别为 NA 的解决方法

问题描述

我最近将我的 data.table 版本升级到 1.11.4 并且遇到了问题。它类似于下面提出的问题:

空格在 fread 中未被识别为 NA

然而,在评论中,它只是简单地说“我猜这是在 data.table 版本 1.11.0 中引入的(参见 github.com/Rdatatable/data.table/blob/master/NEWS.md,第 1 节)引用: "我们希望 ,,=>NA 与数字类型保持一致,并且 ,"",=>empty 字符串作为 fwrite/fread 字符列的标准默认值,以便 fread(fwrite(DT))==DT 不需要任何更改为任何参数。”

我已经阅读了下面的文档并尝试使用“options(datatable.fread.na.strings="NA")”,但仍然将字符列读取为空白而不是 NA。必须有解决方法吗?

例子:

library(data.table)
x1 <- c("","","")
x2 <- c("1006678566","","1011160152")
x3 <- c("","ac","")
x4 <- c("","2","3")
df <- cbind.data.frame(x1,x2,x3,x4)
write.csv(df,"tr.csv")

tr1 <- fread("tr.csv", header=T, fill = T,
sep= ",", na.strings = c("",NA), data.table = F,stringsAsFactors = FALSE)

tr2 <- read.table("tr.csv", fill = TRUE, header=T, sep= ",", na.strings = c(""," ", NA), stringsAsFactors = FALSE)

标签: rdata.table

解决方案


推荐阅读