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