Re: [問題] aggregation on list of data frames

看板R_Language作者 (衝吧衝吧)時間9年前 (2015/02/01 21:52), 編輯推噓0(004)
留言4則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《braveht (衝吧衝吧)》之銘言: : 標題: [問題] aggregation on list of data frames : 時間: Sun Feb 1 16:01:15 2015 : : : [問題類型]: : : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : : : [軟體熟悉度]: : 入門(寫過其他程式,只是對語法不熟悉) : : [問題敘述]: : : 有個 list of data frames, : 想用 row name 當做 key 來 aggregate 多個 data frame : : : [程式範例]: : : l = list() : l[[1]] = data.frame(row.names=c('a','b','c','d'), x=c(1,2,3,4)) : l[[2]] = data.frame(row.names=c('d','c','b','a'), x=c(1,2,3,4)) : : 希望可以得到所有 data frame 的 aggregation 結果,如:平均 : : mean(x) : a 2.5 : b 2.5 : c 2.5 : d 2.5 : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.193.132 : ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1422777684.A.64B.html : ※ 編輯: braveht (1.169.193.132), 02/01/2015 16:02:30 : → obarisk: l %>% do.call(cbind) %>% apply(1, mean) 02/01 17:27 : → obarisk: 還是檢查一下cbind有沒有依照row name比較好 02/01 17:28 : → Wush978: 應該是do.call(rbind) ? 是嗎? 02/01 20:00 似乎這樣寫可以得到結果 aggregate(x ~ name, do.call(rbind, lapply(l, function(x) { x$name = row.names(x); x } ) ), mean) 不知道有沒有更簡潔的作法? 另外請問一下, %>% 的用法是? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.193.132 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1422798732.A.531.html

02/01 22:40, , 1F
pipeline style, 出自套件magrittr
02/01 22:40, 1F

02/01 22:42, , 2F
你也可以參考這篇: http://ppt.cc/5QKZ
02/01 22:42, 2F

02/01 22:43, , 3F
有人把這種pipeline style當成2014年對R的使用者們最重要
02/01 22:43, 3F

02/01 22:43, , 4F
的工具
02/01 22:43, 4F
文章代碼(AID): #1KpY-CKn (R_Language)
文章代碼(AID): #1KpY-CKn (R_Language)