Arrays 如何获得整个矩阵、数组或数据帧的均值、中值和其他统计信息?

Arrays 如何获得整个矩阵、数组或数据帧的均值、中值和其他统计信息?,arrays,r,matrix,dataframe,r-faq,Arrays,R,Matrix,Dataframe,R Faq,我知道这是一个基本问题,但由于某种奇怪的原因,我无法找到答案 我应该如何在整个数组、矩阵或数据帧上应用基本的统计函数,如均值、中值等,以获得唯一的答案,而不是行或列上的向量。默认情况下,mean和median等适用于整个数组或矩阵 例如: #数组: m既然这是一个相当大的问题,我将更全面地处理这个问题,除了mean和median之外,还包括“etc.”部分 对于矩阵或数组,如其他矩阵或数组所述,mean和median将返回单个值。然而,var将计算二维矩阵列之间的协方差。有趣的是,对于多维数组,

我知道这是一个基本问题,但由于某种奇怪的原因,我无法找到答案


我应该如何在整个数组、矩阵或数据帧上应用基本的统计函数,如均值、中值等,以获得唯一的答案,而不是行或列上的向量。默认情况下,
mean
median
等适用于整个数组或矩阵

例如:

#数组:

m既然这是一个相当大的问题,我将更全面地处理这个问题,除了
mean
median
之外,还包括“etc.”部分

  • 对于矩阵或数组,如其他矩阵或数组所述,
    mean
    median
    将返回单个值。然而,
    var
    将计算二维矩阵列之间的协方差。有趣的是,对于多维数组,
    var
    返回单个值<二维矩阵上的code>sd
  • 将起作用,但不推荐使用,返回列的标准偏差。更好的是,
    mad
    在二维矩阵和多维数组上返回单个值。如果希望返回单个值,最安全的方法是首先使用
    as.vector()
    强制。玩得开心吗

  • 对于
    data.frame
    mean
    不推荐使用,但将再次单独作用于列<代码>中值要求您首先强制使用向量,或
    取消列出
    。与前面一样,
    var
    将返回协方差,
    sd
    再次被弃用,但将返回列的标准偏差
    mad
    要求强制为向量或
    取消列出
    。通常,对于
    data.frame
    如果您希望对所有值执行操作,通常只需
    首先取消列出它

  • 编辑:最新突发新闻():在R 3.0.0中,mean.data.frame已失效:

    o   mean() for data frames and sd() for data frames and matrices are
    defunct.
    

    您可以通过install.packages('dplyr')使用
    库dplyr
    ,然后

    dataframe.mean <- dataframe %>%
      summarise_all(mean) # replace for median
    
    dataframe.mean%
    汇总所有(平均值)#替换为中位数
    
    但对于数据帧,
    平均值
    中值
    不能正常工作。正如您所指出的,由于非数字列的原因,将df强制为矩阵将出现错误(因此您必须创建一个列索引以仅接触数字列)。(此外,如果数据帧较大,则使用
    as.matrix(mdf)
    -big临时变量对其进行转换既不高效也不可扩展)。
    o   mean() for data frames and sd() for data frames and matrices are
    defunct.
    
    dataframe.mean <- dataframe %>%
      summarise_all(mean) # replace for median