【问题标题】:How to use dim. argument in rowVars on an array in R如何使用暗淡。 R中数组的rowVars中的参数
【发布时间】:2021-05-06 19:04:17
【问题描述】:

这个问题很基础:我对 R 中 MatrixStats 包中的 rowVars 文档感到非常困惑。

我有一个维度数组(12、12、10000),即 10000 个 12x12 矩阵。 rowMeans 很容易以包含 10000 个项目的列表的形式为我提供每个矩阵的每一行的平均值。我想对 rowVars 做同样的事情来获得差异。

这适用于单个矩阵,但对于任何具有更多维度的东西,它会给出一条错误消息,说明使用 dim 参数,我不明白它是如何工作的。包文档说 dim 是“一个长度为 2 的整数向量,指定 x 的维度,当不是矩阵时也是如此。” (其中 x 是要使用函数的对象)。但是,我不明白这意味着什么,也无法找到任何有用的使用示例。 “指定维度”是什么意思 - 指定多少个维度?或指定每个例如(12、12、10000)的大小?如果是这样,它的长度怎么可能是2?

谢谢!

【问题讨论】:

    标签: r arrays matrix vector apply


    【解决方案1】:

    rowVars 的文档指出输入 x 应该是“数字 N x K 矩阵”,所以听起来这个函数只支持二维矩阵。如果您想要 10000 个矩阵的每一行的方差,您可以改为执行以下操作:

    mat <- array(rnorm(12*12*10000,0,1),dim=c(12,12,10000))
    rvs <- sapply(1:10000,function(x) rowVars(mat[,,x]))
    

    生成的对象rvs 将是一个矩阵,其中第 n 列是第 n 个 12 x 12 矩阵的行方差。

    【讨论】:

    • 效果很好,非常感谢!我怀疑它可能不适用于数组,我只是有点困惑,因为文档提到“当不是矩阵时”。
    猜你喜欢
    • 2017-12-03
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多