【问题标题】:How to remove special characters while loading a csv in R?在 R 中加载 csv 时如何删除特殊字符?
【发布时间】:2015-09-28 15:13:16
【问题描述】:

我也有类似的问题:read.csv warning 'EOF within quoted string' prevents complete reading of file

也就是说,当我加载一个 csv R 时说:

Warning message:
In scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  :
EOF within quoted string

我可以通过将:quotes="" 应用于 read.csv 来消除此错误

但主要问题仍然存在,总共只有 22111 行 689233 被读入 R。我想尝试从 csv 中删除所有特殊字符,看看这是否能解决问题。

相关我发现了这个:How to remove specific special characters in R

但是有没有办法在 read.csv 中做到这一点,即在我读取文件的阶段?

【问题讨论】:

  • 您确定您的输入文件格式正确,这意味着所有 689,233 行的列数都相同吗? read.csv(它是 read.table 的包装)有点敏感,可能会因输入文件错误而死。
  • 我不认为你可以在 read.csv 中做到这一点!我相信这里最好不要使用 R 并使用 awk 之类的东西或其他 Linux 文本后处理命令。
  • @ElinaJ 您能否发布输入 csv 文件中的前 2 行以及第 22111 和 22112 行?
  • 我担心这是敏感数据,无法发布...我尝试删除第 21611-22111 行,现在我要加载 230,168 行...
  • 你可以通过使用带有选项encoding的read.table来解决它。

标签: r csv quotes read.csv


【解决方案1】:

您尝试过从data.table 转换为fread 吗?它可以优化任务并可能处理一些常见问题。由于您没有提供任何数据,我举了一个愚蠢的例子:

> fread('col1,col2\n5,"4\n3"')
   col1 col2
1:    5 4\n3

【讨论】:

    【解决方案2】:

    这确实是一个特殊的角色。第 22,112 行有一个 →(箭头,十六进制值 0x1A)。 删除箭头后,我可以正常加载数据!

    【讨论】:

      【解决方案3】:

      带有特殊字符的数据表expord csv的解决方案 从中查找字符集 https://cdn.datatables.net/buttons/1.1.2/js/buttons.html5.js 要么 https://cdn.datatables.net/buttons/1.1.2/js/buttons.html5.min.js

      并将其从 'UTF-8' 更改为 'UTF-8-BOM'

      【讨论】:

      • 始终欢迎提供潜在解决方案的链接,但如果链接不再可用,请为未来的访问者添加一些详细信息。
      猜你喜欢
      • 2021-08-09
      • 1970-01-01
      • 2014-03-05
      • 2019-04-01
      • 2016-06-08
      • 1970-01-01
      • 2017-12-20
      • 2019-10-01
      • 2021-07-15
      相关资源
      最近更新 更多