使用时write.csv
,通过使用以下命令删除引号,可以显着减小文件大小(对于大型数据集,大约可减小 25%)quote=FALSE
。然而,这可能会导致read.csv
如果数据中存在逗号,则会发生故障。例如:
x <- data.frame(a=1:2,b=c("hello,","world"))
dim(x)
[1] 2 2
f <- tempfile()
write.csv(x,f,row.names=FALSE,quote=FALSE)
dim(read.csv(f))
[1] 2 2
read.csv(f)
a b
1 hello NA
2 world NA
观察列名称未对齐以及数据丢失和虚假数据的添加。
通常是否可以删除引号,但为数据中包含逗号的字段保留引号?
我采用的解决方案是@TimPietzcker 和@BenBolker 的评论的组合。
quote
可以是一个数字向量来指定引用哪些列。虽然我更愿意只在需要时引用,但这在我的情况下几乎可以完全减少文件大小(也使用na=""
).
commas <- which(sapply(x, function(y) any(grepl(",",y))))
write.csv(x,f,row.names=FALSE,quote=commas)
read.csv(f)
a b
1 1 hello,
2 2 world
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)