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

时间:2015-09-16 13:25:24

标签: r matrix negative-number

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

完成的示例

我有两个带坐标的矩阵(df143和df143_2,或者矩阵A和B)

A:

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

B:

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

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

2 个答案:

答案 0 :(得分:0)

我相信这就是你要做的事情:

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

答案 1 :(得分:0)

或者你可以做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