[問題] 要如何將$之後字串用迴圈寫

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

Links booklink

Contact Us: admin [ a t ] ucptt.com