作者braveht (冲吧冲吧)
看板R_Language
标题Re: [问题] aggregation on list of data frames
时间Sun Feb 1 21:52:09 2015
※ 引述《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://webptt.com/cn.aspx?n=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://webptt.com/cn.aspx?n=bbs/R_Language/M.1422798732.A.531.html
1F:→ Wush978: pipeline style, 出自套件magrittr 02/01 22:40
3F:→ Wush978: 有人把这种pipeline style当成2014年对R的使用者们最重要 02/01 22:43
4F:→ Wush978: 的工具 02/01 22:43