编写 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)。
在一个数据集中,我有几列,其中的内容是可能包含逗号的名称或地址。例如,"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)。