gpt4 book ai didi

r - 如何有条件地删除 write.csv 中的引号?

转载 作者:行者123 更新时间:2023-12-02 03:19:53 25 4
gpt4 key购买 nike

使用 write.csv 时,可以通过使用 quote=FALSE 删除引号来显着减小文件大小(对于大型数据集大约可减小 25%)。但是,如果数据中存在逗号,这可能会导致 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

关于r - 如何有条件地删除 write.csv 中的引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25743018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com