编写 csv 时避免拆分字符串列

Avoid splitting string columns when writing csv

在一个数据集中,我有几列,其中的内容是可能包含逗号的名称或地址。例如,"Einstein, Albert" 或 "Devon St., 8"。当尝试使用 write.csv 命令写入 csv 文件时,R 会拆分字符串并在某些情况下创建额外的列:

write.csv(data, "output.csv", rownames=F, quote=F)

Name          Address          NumberP           Phone
Einstein      Albert           Rue 8             8             00000000000
David Rosa    Ocho 9           11                0000000000000

如何绕过这个问题?

您在调用 write.csv 时传递的 quote=F 参数可能会提示您。您告诉 R 不要引用这些字段,这意味着带有文字逗号的列将因此出现在带有文字逗号的输出中。更改为 quote=TRUE 应该可以解决这个问题:

write.csv(data, "output.csv", rownames=FALSE, quote=TRUE)

请注意,现在您的输出将用双引号将每个字段转义,至少那些需要它是明确的。但大多数导入此 CSV 文件的地方都知道如何处理此问题(例如 Excel)。