【问题标题】:Apply a bunch of functions to columns of a matrix in R将一堆函数应用于R中的矩阵列
【发布时间】:2015-04-06 13:38:53
【问题描述】:

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

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

但如果我想建立一个关于矩阵的描述性统计数据,我应该使用更多的索引。例如,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

你能告诉我如何解决这个问题吗?

【问题讨论】:

    标签: r matrix apply


    【解决方案1】:
    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
      

      【讨论】:

        猜你喜欢
        • 2015-05-08
        • 1970-01-01
        • 1970-01-01
        • 2021-10-19
        • 2010-12-14
        • 2015-04-23
        • 1970-01-01
        • 1970-01-01
        • 2019-04-05
        相关资源
        最近更新 更多