2

I want to calculate row/col sums for upper/lower triangle matrix (with diagonal). Example:

m <- matrix(1:9, nrow=3)
#result:
upperRowSums(m)
## [1] 12 13 9
lowerRowSums(m)
## [1] 1 7 18

I know that this could be done with simple for loop, but I want to avoid this. I'm looking for pure R solution.

Russia Must Remove Putin
  • 374,368
  • 89
  • 403
  • 331
bartektartanus
  • 15,284
  • 6
  • 74
  • 102

1 Answers1

4

A way:

rowSums(m * upper.tri(m, diag=TRUE))
#[1] 12 13  9
bartektartanus
  • 15,284
  • 6
  • 74
  • 102
alexis_laz
  • 12,884
  • 4
  • 27
  • 37