使用两个矩阵在 R 中执行逐元素标准差

Performing element-wise standard deviation in R with two matrices

如标​​题所示,我正在寻找一种方法来从两个单独的矩阵中获取每个元素的标准差。但是,我是 R 的初学者,我似乎无法弄清楚如何做到这一点。下面是我试图用我的一小部分数据(前三行)

完成的示例

我有两个坐标矩阵(df143 和 df143_2,或者矩阵 A 和 B,如您所愿)

甲:

[1,]  21.729504  -55.66055  -37.26477
[2,]  39.445610  -67.67449  -32.19464
[3,]  57.604027  -54.16734  -28.48679

乙:

[1,]  21.706865  -55.50722  -37.57840
[2,]  39.553314  -67.68414  -31.95995
[3,]  57.286247  -54.13008  -28.44446

我正在寻找一个矩阵输出,它显示两个组合矩阵的每个元素的标准差。

我相信这就是您想要做的:

library(abind)

a <- c(21.729504, -55.66055, -37.26477, 39.445610, -67.67449, -32.19464, 57.604027, -54.16734, -28.48679)
a <- matrix(a, ncol=3, byrow=TRUE)

b <- c(21.706865, -55.50722, -37.57840, 39.553314, -67.68414, -31.95995, 57.286247, -54.13008, -28.44446)
b <- matrix(b, ncol=3, byrow=TRUE)

m <- abind(a, b, along=3)

apply(m, 1:2, sd)
##            [,1]       [,2]       [,3]
## [1,] 0.01600819 0.10842068 0.22176990
## [2,] 0.07615823 0.00682358 0.16595089
## [3,] 0.22470439 0.02634680 0.02993183

或者你可以做基础 R:

matrix(mapply(function(x,y) sd(c(x,y)),A, B), ncol=ncol(A))
#           [,1]       [,2]       [,3]
#[1,] 0.01600819 0.10842068 0.22176990
#[2,] 0.07615823 0.00682358 0.16595089
#[3,] 0.22470439 0.02634680 0.02993183