2015-04-06 49 views
3

有一个函数f应用于矩阵的每个列的方式:应用了一堆功能于矩阵的列中的R

M <- matrix(seq(1,16), 4, 4) 
apply(M, 2, mean) 
#[1] 2.5 6.5 10.5 14.5 

但是,如果我想建立有关矩阵中的描述性统计我应该使用更多的indeces。例如,max, min, mean

但R没有允许做这样的事情:

apply(M, 2, c(mean, max)) 

得到这个输出:

#  [,1] [,2] [,3] [,4] 
#mean 2.5 6.5 10.5 14.5 
#max  4 8 12 16 

你能告诉我如何与这个管理问题?

回答

5
apply(M, 2, function(x) c(mean(x), max(x))) 
#  [,1] [,2] [,3] [,4] 
# [1,] 2.5 6.5 10.5 14.5 
# [2,] 4.0 8.0 12.0 16.0 
2

尝试以下操作:

f <- c("max", "min", "mean") 
sapply(f, function(x) apply(M, 2, x)) 
    max min mean 
[1,] 4 1 2.5 
[2,] 8 5 6.5 
[3,] 12 9 10.5 
[4,] 16 13 14.5