У меня есть данные в виде матрицы n*n
, для которой я хочу выполнить некоторые вычисления (например, sum
), элементы которых размещены между диагоналями (исключая диагонали).
Например, для этой матрицы:
[,1] [,2] [,3] [,4] [,5]
[1,] 2 0 1 4 3
[2,] 5 3 6 0 4
[3,] 3 5 2 3 1
[4,] 2 1 5 3 2
[5,] 1 4 3 4 1
Результат для sum
(между диагональными элементами) будет:
# left slice 5+3+2+5 = 15
# bottom slice 4+3+4+5 = 16
# right slice 4+1+2+3 = 10
# top slice 0+1+4+6 = 11
# dput(m)
m <- structure(c(2, 5, 3, 2, 1, 0, 3, 5, 1, 4, 1, 6, 2, 5, 3, 4, 0,
3, 3, 4, 3, 4, 1, 2, 1), .Dim = c(5L, 5L))
Как добиться этого эффективно?
base
R. - person 989   schedule 24.06.2016