R_Language 板


LINE

※ 引述《helixc (@_2;)》之铭言: : ※ 引述《celestialgod (攸蓝)》之铭言: : : # 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 帮忙补充c大第二个连结的方法 https://stat.ethz.ch/pipermail/r-devel/2015-May/071259.html 因为 data.frame 的 `print` method 里面会通过 format() 转换, (如底下function中的 #old# 部分),所以可能有些locale所造成不同的转换。 `print`函数是generic function, 因此可自定义新 class 及 所对应的 `print` method 来实现略过format(), 或可选择直接在 global environment 定义新的 `print.data.frame`, 使得不用更改class的情况下,优先用自定义的 method print.data.frame <- function (x, ..., digits = NULL, quote = FALSE, right = TRUE, row.names = TRUE) { n <- length(row.names(x)) if (length(x) == 0L) { cat(sprintf(ngettext(n, "data frame with 0 columns and %d row", "data frame with 0 columns and %d rows", domain = "R-base"), n), "\n", sep = "") } else if (n == 0L) { print.default(names(x), quote = FALSE) cat(gettext("<0 rows> (or 0-length row.names)\n")) } else { #old# m <- as.matrix(format.data.frame(x, digits = digits, #old# na.encode = FALSE)) m <- as.matrix(x) if (!isTRUE(row.names)) dimnames(m)[[1L]] <- if (identical(row.names, FALSE)) rep.int("", n) else row.names print(m, ..., quote = quote, right = right) } invisible(x) } df <- data.frame(x="黑颈鸊鷉"); df ## x ## 1 黑颈鸊鷉 # 测试原本的 `print` --------------------------------------- # 不晓得什麽原因"黑颈"可显示但"鸊鷉"却无法: Sys.setlocale("LC_CTYPE", locale="Chinese_Taiwan.950") df <- data.frame(x="黑颈鸊鷉"); df ## x ## 1 黑颈<U+9E0A><U+9DC9> # 测试不同locale,则全部以unicode码显示 Sys.setlocale("LC_CTYPE", locale="English_United States.1252") df <- data.frame(x="黑颈鸊鷉"); df ## x ## 1 <U+9ED1><U+9838><U+9E0A><U+9DC9> --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.193.161.90
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1436281469.A.DCD.html
1F:推 helixc: 感谢,我研究一下… 07/08 07:26
※ 编辑: leo0650 (211.20.117.229), 07/09/2015 14:55:54







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP