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/m.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燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP