【问题标题】:How do I remove the double quotes from a csv file using R before applying read.csv()?在应用 read.csv() 之前,如何使用 R 从 csv 文件中删除双引号?
【发布时间】:2014-09-30 06:06:28
【问题描述】:

我有一个 csv 文件,其中一些列中有双引号。在将此文件应用 read.csv() 以将数据存储在数据框中之前,我想删除 R 中的所有这些双引号。

【问题讨论】:

  • 为什么不使用read.csvquote 参数?或者只使用您最喜欢的电子表格编辑器。
  • 为什么?我之所以这么问,是因为要执行您在“R”中提出的要求,您必须以某种方式readcsv。选项包括使用readLines,但让我们先确定为什么
  • 我可以在 Notepad++ 中使用 Cntrl+F 手动清理它,但是我将无法通过运行脚本来自动化这个过程。我可能有兴趣定期刷新这些数据。
  • “双引号”是什么意思?像这样 ? '"hello","this","is","quoted"'。您永远不需要手动更改文件来读取它。也可以试试read.table
  • 是的。那样的文件。您能否发布我将如何使用 read.table 解决该问题?请张贴作为答案。

标签: r


【解决方案1】:
 f <- "path/to/file.csv"
 raw <- readLines(f)
 raw <- gsub("\\\"\\\"", "\"", raw)
 DAT <- read.table(text=raw)

更新以反映 Hugh 在下方的说明

【讨论】:

  • @hugh,我们想搜索\",但是,我们需要同时转义引号字符和转义字符,以便产生\\ \"\\\" 然后我们想要其中两个... \\\"\\\" 整个事情是一个字符串,所以我们需要用引号将它包裹起来 "\\\"\\\"" - 这就是我们要搜索的内容。然后我们用更简单的单引号替换它,它需要一个转义字符
  • 当然,但我看不出它对DAT 有何贡献。你的意思是raw &lt;- gsub("\\\"\\\"", "\"", raw)
  • @hugh 哦,确实!那是一个草率的遗漏。谢谢你的收获!
猜你喜欢
  • 2021-02-22
  • 2022-01-20
  • 2014-05-05
  • 1970-01-01
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 2018-07-27
相关资源
最近更新 更多