避免在写csv文件时拆分字符串列。

4
在数据集中,我有一些列包含可能包含逗号的名称或地址。例如,“爱因斯坦,阿尔伯特”或“德文街8号”。当尝试使用write.csv命令编写CSV文件时,R有时会拆分字符串并创建额外的列: write.csv(data, "output.csv", rownames=F, quote=F) 如何解决这个问题?

2
或者,您可以使用write.table并将分隔符更改为其他内容,例如"\t"表示制表符。 - caw5cv
我可以尝试这种方法来避免写引号,非常感谢! - Tamara Dominguez Poncelas
1个回答

11

write.csv 调用中传递的 quote=F 参数可能会让你知道问题所在。你告诉 R 不要引用字段, 这意味着具有字面逗号的列因此将以字面逗号的形式出现在输出中。将其改为quote=TRUE 可以解决这个问题:

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

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


谢谢,这很有用。我之前没有意识到问题来自于引号参数,尽管这很合理。我试图在没有引号的情况下获取输出,但如果需要的话,我想我可以稍后将它们删除。 - Tamara Dominguez Poncelas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接