【发布时间】:2019-01-12 03:10:03
【问题描述】:
嗨,我想我需要从这个 data.frame 中按基因进行总结。
g1 = data.frame (
gene = c( "a","a","a","a","b"),
value = c(1,200,3,5,0)
)
gene value
1 a 1
2 a 200
3 a 3
4 a 5
5 b 0
我想做的是按基因聚合,但使用返回两个变量的函数。对于这个例子,假设这个函数返回一个平均值和中位数。
mn <- function ( x ){
return ( c( median(x), mean(x) ))
}
因为函数返回一个向量,我需要调用它两次。有没有办法将结果拆分,这样我就不必计算两次?
g1 %>%
group_by(gene) %>%
dplyr::summarize(
median = mn ( value )[1], # because mn returns a vector I need to call it twice
mean = mn ( value )[2]
) %>%
data.frame()
【问题讨论】:
-
为什么不给每个单独的函数?