在R中对矩阵的列应用一系列函数

3

有一种方法可以将函数f应用于矩阵的每一列:

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

但是如果我想要建立关于矩阵的描述性统计,我需要使用更多的指标。例如,最大值,最小值,平均值等。

然而,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

你能告诉我如何处理这个问题吗?

2个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接