【问题标题】:Importing data with special characters in R在 R 中导入带有特殊字符的数据
【发布时间】:2015-11-13 14:35:57
【问题描述】:

下图显示了我在 R 中导入它(记事本)之前和导入之后的数据。

我使用以下命令将其导入到 R 中:

Data <- read.csv('data.csv',stringsAsFactors = FALSE,header = TRUE,quote = "")

可以看出ae等特殊字符被替换为A|之类的东西(第 19 行在左边,第 18 行或右边)。有没有办法按原样导入 CSV 文件? (使用 R)

【问题讨论】:

  • 你试过install.packages("data.table");library(data.table);fread()吗?
  • 如果您知道编码类型,您可以在 readLines 的参数中设置它。
  • @dc3 数据来自网络抓取,所以我猜它们没有标准格式。对?或者可能是?
  • @MpizosDimitris 正确 - 通常您可以检查编码类型(取决于您使用的浏览器)。由于它不是英文的,因此您必须查找最常见的编码...如果您无法弄清楚,则始终可以选择查找模式并仅使用 gsubbing。 - 也许这有帮助:htmlpurifier.org/docs/enduser-utf8.html#findcharset
  • 不久前我遇到了一个与此类似的问题。我收到的一些建议可能有助于缩小错误来源:stackoverflow.com/questions/23152861/reading-foreign-characters

标签: r csv character-encoding special-characters


【解决方案1】:

您的问题是编码问题。这有两个方面:首先,Notepad++ 保存的内容可能与您在保存的文本文件中所期望的编码不对应,其次,R 可能正在使用基于不同编码的read.csv() 读取文件,这尤其可能,因为如果您使用的是 Notepad++,那么这表明您使用的是 Windows,因此您可能无法将 UTF-8 作为 R 的系统区域设置。

所以轮流处理每个问题:

  1. 让 Notepad++ 以特定编码保存文件。在这里,您可以使用these instructions 为新文件设置编码。我总是使用 UTF-8,但由于您的文本是丹麦语,因此 Latin-1 也应该可以使用。

    要验证文本的编码,您可能希望使用RTools 提供的file 实用程序。这将告诉您有关命令行中文件可能编码的一些信息,尽管它并不完美。 (OS X 和 Linux 用户已经拥有此功能,无需安装其他实用程序。)

  2. 将 .csv 文件导入 R 时设置编码。 当您使用 read.csv() 导入文件时,请指定 encoding = "UTF-8"encoding = "Latin-1"。您可能还想检查您的系统编码是什么,并与之匹配。您可以使用Sys.getlocale() 执行此操作(并使用Sys.setlocale() 进行设置。)例如在我的系统上:

    > Sys.getlocale()
    [1] "en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8"
    

    您当然可以将其设置为 Windows-1252,但如果在其他平台上使用它,您可能会遇到可移植性问题。 UTF-8 是最好的解决方案。

【讨论】:

    【解决方案2】:

    在我的例子中,我只使用了参数 [encoding = "Latin-1"] 并且它起作用了。谢谢。

    read.csv(paste(src,sprintf("%s.csv",x), sep = "/"), header = TRUE,
                             stringsAsFactors = FALSE, encoding = "Latin-1")
    

    【讨论】:

    • 这并不能真正回答问题。如果您有其他问题,可以点击 进行提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review
    猜你喜欢
    • 1970-01-01
    • 2019-09-06
    • 2016-12-27
    • 1970-01-01
    • 2019-01-07
    • 2021-08-15
    • 1970-01-01
    • 2014-03-03
    • 2021-11-02
    相关资源
    最近更新 更多