使用readr读取TSV,其中某些字段带有引号。写回来后,多了一组引号

问题描述 投票:0回答:1

我有一个 TSV,其中一个字段是数组的字符串表示形式,它看起来像这样:

A    B
1    ["hello", "to", "you"]
2    ["some"]
3    ["stuff", "blah"]

我正在尝试使用

readr

来阅读它
library(readr)
df = read_tsv('file.tsv', quote = '\"')

然后我用

write_tsv(df, 'out.tsv')

写出来

问题是,当我打开

out.tsv
时,结果如下:

A    B
1    "[""hello"", ""to"", ""you""]"
2    "[""some""]"
3    "[""stuff"", ""blah""]"

在读取文件时,我在read_csv中尝试了

quote = ''
quote = '\"'
quote = '\\"'
。 write_csv 没有 quote 参数,所以我无法在那里设置任何内容。如何读入该文件并将其写回,以免多余的引号被写出?

r csv stringr readr
1个回答
0
投票

write_csv
现在有
escape
参数(
quote_escape
已被弃用)。
escape
可以选择以下三个选项之一:

  • “double” - 引号通过加倍来转义。

  • “反斜杠” - 引号由前面的反斜杠转义。

  • “none” - 引号不会转义。

有关更多信息,请阅读文档。

© www.soinside.com 2019 - 2024. All rights reserved.