Выполнение поэлементного стандартного отклонения в R с двумя матрицами

Как следует из названия, я ищу способ получить стандартное отклонение для каждого элемента из двух отдельных матриц. Тем не менее, я совсем новичок в 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

Я ищу вывод матрицы, который показывает стандартное отклонение на элемент двух комбинированных матриц.


person Abel Bosman    schedule 16.09.2015    source источник


Ответы (2)


Или вы можете сделать базу 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
person Colonel Beauvel    schedule 16.09.2015

Я считаю, что это то, что вы хотите сделать:

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
person hrbrmstr    schedule 16.09.2015
comment
Спасибо, хотя у меня уже есть две матрицы, доступные в моей рабочей области как функции. Извините, если это было неясно. Тем не менее, это определенно будет полезно для меня в будущем! - person Abel Bosman; 16.09.2015