楼主:
jklkj (诚实可靠小郎君)
2017-04-14 11:58:09[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
请把以下不需要的部份删除
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
我目前用RPostgreSQL把数据库的资料抓下来,但是只要是中文的字段都变成乱码
我想用比较简单的方法把UTF8转成big5
[程式范例]:
df$addr <- iconv(df$addr, "UTF8", "big5")
如上述,我目前是用iconv一个一个转,想请问一下我要怎么把循环写进$之后
或是可以告诉我关键字或概念
或是有没有更简便的方法
[环境叙述]:
请提供 sessionInfo() 的输出结果,
里面含有所有你使用的作业系统、R 的版本和套件版本资讯,
让版友更容易找出错误
[关键字]:
选择性,也许未来有用
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"]]
这样单栏可处理 df$addr,想请问要如何处理整个导进来的table?
for i in c(1:length(df)){df[i] <- iconv(df[i], "UTF8", "big5")}小弟也是新手,不晓得有没有解决到你的问题
for(x in c(1:16)){ res[[x]]=iconv(res[[x]],"UTF8","CP950") }
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