[问题] 要如何将$之后字串用循环写

楼主: 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