Re: [问题] 读入"鸻" "鸊鷉" 等怪字

楼主: helixc (@_2;)   2015-07-06 00:22:58
※ 引述《celestialgod (攸蓝)》之铭言:
: ※ 引述《helixc (@_2;)》之铭言:
: # readxl套件: (不用JAVA,读取也比较快,也不会转换字串为factor)
: library(readxl)
: dat = read_excel("birdnames.xls")
这边报告一下... readxl这个套件没问题,
但用dplyr处里资料的时候就会有问题。
[code]
library(readxl)
library(dplyr)
fileName = "birdnames.xls"
#读取资料
x = read_excel(fileName)
#资料读取输出正常
x$c_name[51:52]
#使用dplyr::select来读资料,用两种不同的写法,一样都不正常
y1<-select(x, c_name, Order) ; y1[51:52,]
y2<- x %>% select(c_name, Order) ; y2[51:52,]
#使用base::unique来读取资料,正常
z<-unique(x$c_name); z[51:52]
还不太会贴code以及处里过程,直接贴图
http://imgur.com/7oOVkLm
不正常的资料
Source: local data frame [2 x 2]
c_name Order
1 白嘴潜鸟 51
2 小<U+9E0A><U+9DC9> 52
正常的资料
[1] "白嘴潜鸟" "小鸊鷉"
如果是package处里的问题的话,那转移到非windows系统是无解的吧?
只能舍弃dplyr使用*apply来输出名录了...
可是我还不会用*apply来写dplyr-like的功能阿Orz
作者: celestialgod (天)   2015-07-06 00:38:00
#1Kuvs-9O (Statistics)根据上面那篇 y1$c_name[51:52]这样又能正常显示XD这是R print的问题(摊手i find a silution, please refer to http://goo.gl/XKK9a2抱歉, 手机推文,断掉,http://goo.gl/XKK9a2another discussion and solution https://goo.gl/M4q4eLhttps://goo.gl/M4q4eL 又断...
楼主: helixc (@_2;)   2015-07-06 01:13:00
什么软件可以自己帮你断句呀 MoPTT吗XDD我加上 Sys.setlocale(locale="UTF-8") 就好了(摊手)可惜没有跳脱dplyr来写程式的机会了(?)可是为何base下的指令就OK, 但dplyr的指令就不行?
作者: celestialgod (天)   2015-07-06 01:17:00
不是dplyr问题, 你看第二个网址有写是format问题。只跟data.frame有关
楼主: helixc (@_2;)   2015-07-06 01:31:00
好像没好...出现错误讯息Warning message:In Sys.setlocale(locale = "UTF-8") :OS reports request to set locale to "UTF-8" cannot bonored我决定改输出序号到Excel去比对比较快...这样太累了
作者: leo0650 (吕奕)   2015-07-06 01:53:00
因为Windows的locale好像没有UTF-8相关的 (若Mac OS可行)若要print在console可试试c大提供的方法,y1增加classclass(y1) <- c("unicode_df","data.frame","tbl")
楼主: helixc (@_2;)   2015-07-06 03:20:00
有些工作真的还是excel比较快(苦笑)
作者: Edster (Edster)   2015-07-06 17:11:00
我以前处理植物名录的时候,全使用代码,代码还是比较安心不晓得你们代码怎么编,我们是属名前三码跟种名前三码,遇到变种跟亚种,就再三码。
楼主: helixc (@_2;)   2015-07-06 21:26:00
各种台湾出现过的鸟类加起来最多也不会超过1000种,而鸟类也有很好的名录可以参考,我知道的人都是直接用名录的编号来操作...植物有五千多种以上,我以前大学的时候遇到一位作草本的老师自己写PDA软件用属名3码种小名2码编码不过听他说还是会遇到重复的...回到本文的题旨..其实很有趣,就算那一个data.frame里面的字变成乱码,还是可以和还没变成乱码(不是df格式?)的资料很好的合并,程式还是都把他们当一家人XD不过总得面对批次出图/档案的问题,该学非Win系统了Orz
作者: Neisseria (Neisseria)   2015-07-06 22:13:00
在 Linux 和 Mac 上使用 utf-8 console 会容易得多
作者: andrew43 (讨厌有好心推文后删文者)   2015-07-07 00:21:00
所以…出错的根本原因是什么呢?是R处理utf8大字集有问题吗?还是什么?这一串讨论可能很重要。如果知道根本原因,可以帮很多人
作者: celestialgod (天)   2015-07-07 00:46:00
第一, windows r显示utf8是没问题, 读取(要读excel或是用readLines, 其他读不进去)也ok, 写入还没试过... ,不过写到xls应该ok。第二, data.frame显示有问题, 要用我推文中第二个连结去做。这样的总结, ok吗?
作者: andrew43 (讨厌有好心推文后删文者)   2015-07-07 01:24:00
谢谢楼上补充。
楼主: helixc (@_2;)   2015-07-07 08:08:00
抱歉第二个连结看不太懂,是要自己写print fun吗?可以回文比较清楚吗?感谢因为不只是显示,ggplot::savegg ()存图功能遇到奇怪的字也会崩溃,问题不应该只是要在R上面秀出正常有怪字的df

Links booklink

Contact Us: admin [ a t ] ucptt.com