[問題] R匯入xlsx中文問題

看板R_Language作者 (海灘拖鞋)時間8年前 (2017/04/26 21:18), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
各位大家好 想請教一個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'也是不可行 ===================================================== 不曉得這要怎麼解決? -- Sent from my Windows -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.227.0 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1493212736.A.452.html

04/26 21:20, , 1F
第一和二個方法因為沒有UTF-8的轉換機制,所以都呈現
04/26 21:20, 1F

04/26 21:20, , 2F
亂碼
04/26 21:20, 2F

04/27 00:07, , 4F
看起來readxl已經解決這個問題了
04/27 00:07, 4F

04/27 00:07, , 5F
如果沒有檔案,我沒辦法測試,我自己創的可能不符
04/27 00:07, 5F
文章代碼(AID): #1P09v0HI (R_Language)
文章代碼(AID): #1P09v0HI (R_Language)