使用指定编码的 fread(R中的 data.table)

14

之前的问题与我的困境并没有提供合适的答案: 1. 我有一个大小为2.3GB的csv文件,其中包含240万行希伯来文本,目前编码为ASCII。 由于我们要处理大文件,fread可能更可取,但是关于编码方面有什么建议呢? 有没有办法读取编码为ASCII的csv文件以避免著名的“字符串中嵌入了空字符”错误?

谢谢


2
https://github.com/Rdatatable/data.table/issues/563 - David Arenburg
我已经尝试了这个解决方案,但是R返回的是以下内容:
fread("C:/Users/WINDOWS 7/IdeaProjects/PHD/classifier/phdcorpus2_processed/phdcorpus2_processed.csv" , encoding='UTF8') Error in fread("C:/Users/WINDOWS 7/IdeaProjects/PHD/classifier/phdcorpus2_processed/phdcorpus2_processed.csv", : unused argument (encoding = "UTF8")
- Dmitry Leykin
2
这不是一个解决方案,它在GitHub上表示为FR,这意味着您的问题目前无法使用当前的"data.table"版本解决,但开发人员正在处理。 - David Arenburg
1个回答

19
截至8月25日,由David Arenburg提出的相关案例已经关闭,并且该功能已包含在当前可用版本的data.table中。现在可以在调用fread时使用encoding参数:
text <- fread(file, encoding = 'UTF-8')

ASCII并不是一种明确的编码选项,但ASCII是有效的UTF-8编码,所以当您想读取希伯来文本时,可以指定使用UTF-8编码。


3
我正在使用 data.table 1.9.7(通过 sessionInfo() 确认),但是出现了这个错误:“Error in fread("data.csv", encoding = "UTF-8") : unused argument (encoding = "UTF-8")”。 - Jeff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接