[问题] R汇入xlsx中文问题

楼主: lichungtsai (海滩拖鞋)   2017-04-26 21:18:54
各位大家好
想请教一个R汇入xlsx但里头有中文的问题
=====================================================
其中有几个限制:
1.原始的raw data在单一.xlsx中有许多个sheet,所以希望能使用一些能直接读取xlsx的packages来读取,尽量不要手动转csv档
2.原始的raw data参杂简体中文、繁体中文,所以那个packages希望有可以做encoding = UTF-8或Big5之类的函式
=====================================================
那么我目前试过了三种方法:
第一个:
dtn <- 'launcher_data_2017-01-10-2017-01-17.xlsx'
library(readxl)
launcher_data_2017_01_10_2017_01_17 <- read_xlsx(dtn, sheet = 2)
不过因为这个package他没办法使用encoding = 'UTF-8'之类的函式,所以资料呈现乱码状态
=====================================================
第二个:
dtn <- 'launcher_data_2017-01-10-2017-01-17.xlsx'
library(openxlsx)
app_1 <- read.xlsx(dtn, sheet = 1)
不过因为这个package他也没办法使用encoding = 'UTF-8'之类的函式,所以资料也呈现乱码状态
=====================================================
第三个:
options(java.parameters = "-Xmx8000m")
dtn <- 'launcher_data_2017-01-10-2017-01-17.xlsx'
library(xlsx)
app_1 <- read.xlsx(dtn, sheetIndex = 1, encoding = 'UTF-8')
我已经用第一行增加内存
但依然出现了
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :
java.lang.OutOfMemoryError: GC overhead limit exceeded
似乎是内存不足的问题
=====================================================
第四个:(我最不希望的手动转csv)
app_1 <- read.csv('launcher_data_2017-01-10-2017-01-17.csv', encoding = 'UTF-8')
出现了
Error in type.convert(data[[i]], as.is = as.is[i], dec = dec, numerals = numerals, :
invalid multibyte string at '<e6><9c><ac>?啣<ba>'
我到现在还不懂这代表什么
总之就是似乎就算手动转csv档,再用encoding = 'UTF-8'也是不可行
=====================================================
不晓得这要怎么解决?
楼主: lichungtsai (海滩拖鞋)   2017-04-26 21:20:00
第一和二个方法因为没有UTF-8的转换机制,所以都呈现乱码
作者: celestialgod (天)   2017-04-27 00:06:00
https://github.com/tidyverse/readxl/issues/125看起来readxl已经解决这个问题了如果没有档案,我没办法测试,我自己创的可能不符

Links booklink

Contact Us: admin [ a t ] ucptt.com