gpt4 book ai didi

r - 处理带引号的字符串中的引号

转载 作者:行者123 更新时间:2023-12-04 20:28:56 25 4
gpt4 key购买 nike

获取此 CSV 文件:

ID,NAME,VALUE
1,Blah,100
2,"Has space",200
3,"Ends with quotes"",300
4,""Surrounded with quotes"",300

它在大多数统计程序(R、SAS 等)中加载得很好,但在 Excel 中,第三行被误解了,因为它有两个引号。将最后一个引号转义为 \"也不会在 Excel 中工作。到目前为止,我发现的唯一方法是用两个双引号替换一个双引号:
ID,NAME,VALUE
1,Blah,100
2,"Has space",200
3,"Ends with quotes""",300
4,"""Surrounded with quotes""",300

但这会使该文件对所有其他程序(R、SAS 等)完全无用。

有没有办法格式化 CSV 文件,其中字符串可以以与它们周围相同的字符开始或结束,这样它就可以在 Excel 以及常用的统计软件中工作?

最佳答案

您的第二个表示是生成 CSV 文件的正常方式,因此应该很容易在任何软件中使用。请参阅 RFC 4180 规范。 https://www.ietf.org/rfc/rfc4180.txt

所以你的第二个例子代表了这个数据:

Obs    id    name                        value

1 1 Blah 100
2 2 Has space 200
3 3 Ends with quotes" 300
4 4 "Surrounded with quotes" 300

如果您想将它表示为一个分隔文件,其中不允许任何值包含分隔符(换句话说,不是作为标准 CSV 文件),它看起来像:
id,name,value
1,Blah,100
2,Has space,200
3,Ends with quotes",300
4,"Surrounded with quotes",300

但是,如果您想允许值包含分隔符,那么您需要某种方法来区分嵌入式分隔符和实际分隔符。因此,标准强制包含要引用的分隔符的值。但是,一旦你这样做了,你还需要在包含引号字符本身的字段周围添加引号(以及双引号),以避免制作模棱两可的文件。例如,第一个文件中第 4 个观察值中的引号看起来像是围绕值而不是值的一部分的可选引号。

许多程序试图处理模棱两可的情况。例如,SAS 不允许值包含嵌入的换行符,因此您将始终使用第一个示例文件获得四个观察值。

但 EXCEL 允许将行尾字符嵌入引用值中。因此,在您的原始文件中,第三个观察值中第二个字段的值看起来就像您在该值周围添加引号时开始得到的值:
Ends with quotes",300
4,"Surrounded with quotes",300

因此,每个三个字段值的 4 个完整观察值只有三个观察值,而最后一个观察值只有两个字段值。

关于r - 处理带引号的字符串中的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53619800/

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