如何使用昏暗。 R 中数组的 rowVars 中的参数
How to use dim. argument in rowVars on an array in R
这个问题很基础:我对 R 中 MatrixStats 包中 rowVars 的文档感到很困惑。
我有一个维度数组 (12, 12, 10000),即 10000 个 12x12 矩阵。 rowMeans 很容易以包含 10000 个项目的列表形式给出每个矩阵的每一行的平均值。我想对 rowVars 做同样的事情以获得差异。
这对于单个矩阵工作正常,但对于任何具有更多维度的矩阵,它会给出一条错误消息,提示使用 dim 参数,我不明白它是如何工作的。包文档说 dim 是“一个长度为 2 的整数向量,指定 x 的维度,当它不是矩阵时也是如此。” (其中 x 是要使用函数的对象)。但是,我不明白这意味着什么,也无法找到任何有用的使用示例。 'specifying the dimension' 是什么意思——指定多少维度?或指定每个例如(12、12、10000)的大小?如果是这样,它的长度怎么可能是2?
谢谢!
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 矩阵的行方差。
这个问题很基础:我对 R 中 MatrixStats 包中 rowVars 的文档感到很困惑。
我有一个维度数组 (12, 12, 10000),即 10000 个 12x12 矩阵。 rowMeans 很容易以包含 10000 个项目的列表形式给出每个矩阵的每一行的平均值。我想对 rowVars 做同样的事情以获得差异。
这对于单个矩阵工作正常,但对于任何具有更多维度的矩阵,它会给出一条错误消息,提示使用 dim 参数,我不明白它是如何工作的。包文档说 dim 是“一个长度为 2 的整数向量,指定 x 的维度,当它不是矩阵时也是如此。” (其中 x 是要使用函数的对象)。但是,我不明白这意味着什么,也无法找到任何有用的使用示例。 'specifying the dimension' 是什么意思——指定多少维度?或指定每个例如(12、12、10000)的大小?如果是这样,它的长度怎么可能是2?
谢谢!
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 矩阵的行方差。