Re: [問題] 處理資料問題(pkg:dplyr)

看板R_Language作者 (攸藍)時間10年前 (2015/08/04 22:31), 10年前編輯推噓5(502)
留言7則, 7人參與, 最新討論串2/4 (看更多)
※ 引述《gbd37 (有夠瞎)》之銘言: : 軟體熟悉度: : 入門 : [問題敘述]: : x是原data的型態 : y是想用dplyr的套件去轉換成 : Fro1是No.那欄出現最多次的字串且n1是出現幾次 : Fro2是No.那欄出現第二多次的字串且n2是出現幾次 : 我試著用group_by summarise count都試不成功 : 抑或是也可以用別的套件來處理也OK 勞煩大大們指導 : [程式範例]: : x <- data.frame(No.=c(rep('A01',3),rep('A02',3),rep('A03',3)), : Fro=c('TPE','KOA','KOA','TAI','TAI', : 'TAI','KOA','TPE','TPE')) : y <- data.frame(No.=c('A01','A02','A03'),Fro1=c('KOA','TAI','TPE'), : n1=c(2,3,2),Fro2=c('TPE','NA','KOA'),n2=c(1,'NA',1)) : [關鍵字]:dplyr library(dplyr) # library(magrittr) # 可省略 x <- data.frame(No=c(rep('A01',3),rep('A02',3),rep('A03',3)), Fro=c('TPE','KOA','KOA','TAI','TAI','TAI','KOA','TPE','TPE'), stringsAsFactors = FALSE) x %>% group_by(No, Fro) %>% summarise(nFro = n()) %>% summarise(Fro1 = Fro[which.max(nFro)], n1 = max(nFro), Fro2 = ifelse(n() > 1, Fro[order(nFro) == n()-1], NA_character_), n2 = ifelse(n() > 1, nFro[order(nFro) == n()-1], NA)) 如果x的column是factor會有問題,這個你可以自己找出來 結果: No Fro1 n1 Fro2 n2 1 A01 KOA 2 TPE 1 2 A02 TAI 3 NA NA 3 A03 TPE 2 KOA 1 補充,你有兩個一樣大的最大值會有問題 那時候要怎麼解決就看資料使用人要怎麼改.... 這部分空間比較大 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.205.27.107 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1438698662.A.15C.html

08/04 22:33, , 1F
已跪
08/04 22:33, 1F
不用跪,快快請起

08/04 22:40, , 2F
跟著跪
08/04 22:40, 2F
太誇張囉,Wush大大。

08/04 22:40, , 3F
在跟著跪
08/04 22:40, 3F
s大,別這樣,請起。

08/05 00:50, , 4F
不准跪,那我倒立可以嗎?
08/05 00:50, 4F
那我要看真人版的XD

08/05 09:01, , 5F
推推推 NA_character_學起來~~~
08/05 09:01, 5F
還有NA_real_跟NA_integer_

08/05 11:49, , 6F
太強大了
08/05 11:49, 6F

08/05 13:18, , 7F
後空翻了
08/05 13:18, 7F
謝謝a大跟p大 ※ 編輯: celestialgod (123.205.27.107), 08/05/2015 13:31:34
文章代碼(AID): #1LmCoc5S (R_Language)
文章代碼(AID): #1LmCoc5S (R_Language)