看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 請把以下不需要的部份刪除 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 我目前用RPostgreSQL把資料庫的資料抓下來,但是只要是中文的欄位都變成亂碼 我想用比較簡單的方法把UTF8轉成big5 [程式範例]: df$addr <- iconv(df$addr, "UTF8", "big5") 如上述,我目前是用iconv一個一個轉,想請問一下我要怎麼把迴圈寫進$之後 或是可以告訴我關鍵字或概念 或是有沒有更簡便的方法 [環境敘述]: 請提供 sessionInfo() 的輸出結果, 裡面含有所有你使用的作業系統、R 的版本和套件版本資訊, 讓版友更容易找出錯誤 [關鍵字]: 選擇性,也許未來有用 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.23.167.43 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1492142292.A.C75.html
chitaiwar: df$addr <- sapply(df$addr, function(x) iconv(x, 04/14 12:04
chitaiwar: 'UTF8', 'big5')) 小弟不才 嘗試解 有錯請指正 04/14 12:06
cywhale: 何不試試看抓資料回來時就讓它是正確的編碼?也許可行 04/14 12:16
cywhale: dbGetQuery(conn, "set client_encoding to 'Big5'") 04/14 12:16
cywhale: then dbReadTable(conn, "YourTableName") 04/14 12:17
Wush978: 用`[[`, ex: df[["addr"]] 04/14 13:30
joedenkidd: 這樣單欄可處理 df$addr,想請問要如何處理整個導進來 04/14 13:56
joedenkidd: 的table? 04/14 13:56
RogerHsieh99: for i in c(1:length(df)){ 04/14 14:15
RogerHsieh99: df[i] <- iconv(df[i], "UTF8", "big5")} 04/14 14:15
RogerHsieh99: 小弟也是新手,不曉得有沒有解決到你的問題 04/14 14:16
joedenkidd: for(x in c(1:16)){ res[[x]]=iconv(res[[x]],"UTF8" 04/14 14:37
joedenkidd: ,"CP950") } 04/14 14:37
celestialgod: data.table: DT[ , lapply(.SD, function(x){ 04/14 22:19
celestialgod: iconv(x,"UTF8", "BIG5")}] 04/14 22:20
celestialgod: dplyr: DF %>% mutate_each(funs(iconv(., "UTF8", 04/14 22:20
celestialgod: "BIG5"))) 04/14 22:21
celestialgod: 如果要限定character column可以使用 mutate_if 04/14 22:21
celestialgod: DF %>% mutate_if(is.character, funs(iconv(., 04/14 22:23
celestialgod: "UTF8", "BIG5"))) 04/14 22:23
celestialgod: 我應該回一篇文章的Orz 04/14 22:23