【发布时间】:2019-03-26 19:56:30
【问题描述】:
我有很多零值的径流数据,偶尔还有一些非零双值。
'readr::read_csv' 猜测整数列类型,因为有很多零。
如何让 read_csv 猜测正确的双列类型? 我事先不知道变量名称的映射,因此无法给出名称类型映射。
这是一个小例子
# create a column of doubles with many zeros (runoff data)
#dsTmp <- data.frame(x = c(rep(0.0, 2), 0.5)) # this works
dsTmp <- data.frame(x = c(rep(0.0, 1e5), 0.5))
write_csv(dsTmp, "tmp/dsTmp.csv")
# 0.0 is written as 0
# read_csv now guesses integer instead of double and reports
# a parsing failure.
ans <- read_csv("tmp/dsTmp.csv")
# the last value is NA instead of 0.5
tail(ans)
我可以告诉它选择尝试更广泛的列类型而不是发出解析失败吗?
Issue 645 提到了这个问题,但那里给出的解决方法是在写作方面。我对写作方面影响不大。
【问题讨论】:
-
您可以尝试增加
guess_max参数,以便在猜测之前进一步查看文件以查找值。 -
可以试试
data.table::fread()吗? -
有什么理由不能选择
read.csv()? -
@12b345b6b78 base R 的
read.csv很慢