如何使fread将""读取为空字符串(即不手动指定colClasses)?这种fread/fwrite不兼容的理由是什么,以及如何避免它(例如,是否有一种方法使fread能够读取空字符串)?
library(data.table)
dt <- data.table(a = 1, b = '')
fwrite(dt, file = 'out.csv')
dt2 <- fread('out.csv')
dt
# a b
# 1: 1
dt2
# a b
# 1: 1 NA有几个密切相关的帖子(例如这一个,但它也会通过指定一个数字字符串来避免麻烦)。我认为我的情况要简单得多,但更令人惊讶/阴险,因为fwrite和fread应该能够始终如一地处理相同的数据,这是有道理的。
发布于 2022-07-24 16:21:03
这是前一个问题和data.table#3439中当前错误的组合,其中空字符串无法正确识别。
解决这个问题的方法有两种,当#3439被修复时,它们可能就没有必要了:
b列中的其他行是非空字符串;您可能无法控制这一点,所以.
writeLines(c(a,b),'1,‘’,'2,‘b’),"out.csv") fread("out.csv") #a#b# 1: 1# 2: 2 bb列是具有原始1行CSV文件fread("out.csv“、colClasses=c(b=”字符“))#a b# 1: 1的类character。https://stackoverflow.com/questions/73098453
复制相似问题