【问题标题】:How to make R's read_csv2() recognise the text characters properly如何使 R 的 read_csv2() 正确识别文本字符
【发布时间】:2017-04-18 04:28:37
【问题描述】:

尝试使用 read_csv2()readr 包中读取 csv 文件。

问题是 read_csv2() 无法正确识别字符,而 R 的默认 read.csv2 成功识别。

例如:

原始值:KOZYATAĞI

read_csv2() 如何识别:KOZYATA<'d0'>I

我检查了帮助文件并尝试了下面列出的编码;但是没能实现。

第一次尝试:以错误的字符结束

my_df <- read_csv2("my_path/my_file.csv")

第二次尝试:手动说明编码。

my_df <- read_csv2("my_path/my_file.csv", locale(encoding = "UTF-8"))

Error: `col_names` must be TRUE, FALSE or a character vector

第 3 次尝试:由于上述错误消息,添加到第 2 次尝试。

my_df <- read_csv2("my_path/my_file.csv", locale(encoding = "UTF-8"), col_names = TRUE, col_types = NULL)

这个没有给出错误,但仍然不能正确识别字符。

怎么做?让我知道是否需要任何其他信息。提前致谢。

【问题讨论】:

  • 给我们提供前几条故障线的数据来试试。否则...我也会尝试其他代码集...其他 utfs...有时 ANSI 出于某种奇怪的原因工作

标签: r utf-8 character readr


【解决方案1】:

@Amit,感谢您的建议。

在 RStudio 上,我选择了 File\Save with Encoding... 以查看一些可用的编码选项。

在编码列表顶部的弹出窗口中,它显示系统默认值(对于我的计算机来说是 CP1254)。然后将它传递给如下的编码参数,它就起作用了!

my_df <- read_csv2("my_path/my_file.csv", locale(encoding = "**CP1254**"), col_names = TRUE, col_types = NULL)

【讨论】:

    【解决方案2】:

    现在在 Rstudio 上,看起来像这样的选项,R Studio Version 1.2.1335 on Windows 10

    那么,这段代码就可以工作了:

    read_csv("C:path/file.csv", locale(encoding = "ISO-8859-1"),col_names = TRUE,col_types = NULL)

    西班牙特殊字符正确加载(重音和ñ)。

    【讨论】:

      猜你喜欢
      • 2011-01-17
      • 2018-05-21
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多