提问人:leparc 提问时间:7/10/2023 最后编辑:ThomasIsCodingleparc 更新时间:7/11/2023 访问量:53
R 中 3D 数组的方差
Variance over a 3D array in R
问:
在 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 值之间的方差?
非常感谢
答:
2赞
ThomasIsCoding
7/10/2023
#1
对于 ,如果要获取标量而不是协方差矩阵,则应使用 而不是。var
var(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,这让我困惑了很长一段时间。
评论