Рассмотрим массив a
:
> a <- array(c(1:9, 1:9), c(3,3,2))
> a
, , 1
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
, , 2
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
Как эффективно вычислить строчные суммы матриц, проиндексированных по третьему измерению, чтобы результат был:
[,1] [,2]
[1,] 12 12
[2,] 15 15
[3,] 18 18
??
Суммы столбцов легко вычислить с помощью аргумента dims
в colSums ()
:
> colSums(a, dims = 1)
, но я не могу найти способ использовать rowSums ( )
в массиве для достижения желаемого результата, поскольку он имеет другую интерпретацию 'dims'
, чем colSums ()
.
Вычислить просто желаемые суммы строк с помощью:
> apply(a, 3, rowSums)
[,1] [,2]
[1,] 12 12
[2,] 15 15
[3,] 18 18
, но это просто скрывает цикл. Есть ли другие эффективные, действительно векторизованные, способы вычисления требуемых сумм строк?