【问题标题】:R - Combining column means in a matrix [duplicate]R - 在矩阵中组合列意味着[重复]
【发布时间】:2017-11-13 20:09:14
【问题描述】:

我有一个看起来像这样的矩阵,想要取每一列的平均值并将它们组合成一个新矩阵。

> MDA
           price       X3        X5     X10      X13       X20      X64      X86
  [1,]  2.851921  0.19537  2.817065  6.5603  7.37657  2.273753  3.73926  4.08654
  [2,]  1.355820 -0.58857 -0.253762  4.3871  3.62105  5.070533  6.03979  3.90909
  [3,] -1.830597  1.74915  0.173217  5.5275  3.76552  3.100661  4.92384  3.16864
  [4,]  6.535637  4.59728  5.848335  6.8814 10.25615  6.663288  3.87881  8.71351
  [5,]  4.666041 -0.49024  2.353359  6.8693  8.86881  9.783803  5.42288  5.88306
  [6,]  4.959884  2.09005  2.677156 10.1798  7.68598  5.771700  3.64374  4.89176
  [7,]  4.014322  5.29507  0.238004  6.1883  6.52230  5.079508  5.33247  5.73703
  ...

为此,我一直在使用以下方法(注意所有这些都是在循环中完成的,因此是[x+1]):

MeanMDA[x+1,] <- c(mean(MDA[,1]),mean(MDA[,2]),mean(MDA[,3]),mean(MDA[,4]),mean(MDA[,5]),
                 mean(MDA[,6]),mean(MDA[,7]),mean(MDA[,8]))

虽然这很有效,但当列数变大时,它会变得非常麻烦。有时有超过 100 个变量,我必须检查并相应地编辑代码......有没有另一种更简洁的方法让代码获取每行的平均值并将其组合成一个矩阵?

【问题讨论】:

  • 我们可以使用colMeans,即colMeans(MDA)
  • 通常将聚合值(例如均值)放在与原始值相同的矩阵中并不是一个好主意。除此之外,您可以使用rbind(MDA, ...)

标签: r


【解决方案1】:

我们可以使用colMeans

colMeans(MDA)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-29
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多