R 中 3D 数组的方差

Variance over a 3D array in R

提问人:leparc 提问时间:7/10/2023 最后编辑:ThomasIsCodingleparc 更新时间:7/11/2023 访问量:53

问:

在 3D 数组上工作:

ar3d <- array(floor(100 * runif(100 * 20 * 30)), dim = c(100, 20, 30))

我很困惑为什么

length(apply(ar3d, MARGIN = 1, FUN = "sd"))
# [1] 100

dim(apply(ar3d, MARGIN = 1, FUN = "var"))
# [1] 900 100

如何尽快计算 20 * 30 值之间的方差?

非常感谢

R 矩阵 VAR 维度

评论


答:

2赞 ThomasIsCoding 7/10/2023 #1

对于 ,如果要获取标量而不是协方差矩阵,则应使用 而不是。varvar(c(x))var(x)

键入 时,您会看到?var

var、cov 和 cor 计算 x 的方差和协方差或 如果 x 和 y 是向量,则 x 和 y 的相关性。如果 x 和 y 是矩阵 然后是 x 和 计算 Y 的列。

你可以尝试一下

> ar3d <- array(floor(100 * runif(100 * 20 * 30)), dim = c(100, 20, 30))

> length(apply(ar3d, 1, \(x) var(c(x))))
[1] 100

> length(apply(ar3d, 1, var))
[1] 90000

> length(apply(ar3d, 1, sd))
[1] 100

评论

0赞 leparc 7/10/2023
非常感谢@ThomasIsCoding,这让我困惑了很长一段时间。