【问题标题】:Importing data with Vietnamese characters into R将带有越南语字符的数据导入 R
【发布时间】:2016-03-18 10:08:41
【问题描述】:

请有人建议将带有越南字符的数据导入 R 数据框的最佳方法,以便正确描述数据。我需要导入的数据类型包括以下列的较长版本:

Student_name

PHẠM THANH

PHẠM VĂN

NGUYỄN TUẤN

NGUYỄN VĂN

VŨ NGỌC

我尝试了许多选项,包括将数据保存为 Unicode.txt 并在指定 encoding = UTF-8 的情况下导入 R。

使用read.csvread.table,我会收到错误消息

read.table("Stu.txt", header = TRUE, encoding = "UTF-8") 中: 第 1 行似乎包含嵌入的空值

保存为MS-Excel文件并使用read.xlsx(包xlsx)导入,我可以正常读取数据,不指定编码我得到奇怪的输出,如图:

 Student_name

1 PHẠM THANH

2 PHẠM VĂN

3 NGUYỄN TUẤN

4 NGUYỄN VĂN

5 NGUYỄN VĂN

6 VŨ NGỌC

使用read.xlsxencoding="UTF-8",我可以得到 UTF-8 翻译,但没有十六进制代码,所以输出的名称包含在小于和 大于号 PH M THANH 等等,不带引号。

我正在通过 RStudio,版本 0.99.467,使用 Windows 7 操作系统运行 R。

谢谢。

【问题讨论】:

  • 所以您是说您的 .xlsx 文件是 XML,通常是隐含的 UTF8 编码而没有 BOM,并且您查看了 .xlsx 内部并且您知道指定的 XML 字符集是什么?您是说您的问题是 R 问题,还是您的问题是 Excel 问题?您应该准确说出 xlsx 文件中的内容以及导致您认为您遇到 R 问题的原因。
  • .xlsx 文件是默认的 .xlsx。我还将该列分别保存为 Unicode .txt 文件和 .csv 文件。我可以在记事本或 MS-Excel 中打开该文件,并正确描述字符。我什至可以将该列复制并粘贴到我的 RStudio 脚本窗口中并使用 textConnection 进行阅读,但问题仍然存在,因此我需要向 R 提供的命令肯定是一个问题,以充分解码字符。
  • 你明白我说的吗?您知道如何检查文件并确定其实际编码吗?
  • 恐怕我也不明白你说的和你的问题。也许下面的例子会解释.library(data.table) toread

标签: xml r unicode


【解决方案1】:

我使用了 stringi 包中的 stri_trans_general 函数:

data <- read.table("Stu.txt", header = TRUE, encoding = "UTF-8")  %>% 
         mutate(Student_name = stri_trans_general(Student_name, "Latin-ASCII"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    相关资源
    最近更新 更多