Мы можем просто установить подмножество строк matrix
, используя логический индекс повторного использования, и сделать +
mat[c(TRUE, FALSE),] + mat[c(FALSE, TRUE),]
Или с rowsum
rowsum(mat, group = rep(1:2, each = 2))
Если строк больше, программно создайте «группу»
rowsum(mat, group = as.integer(gl(nrow(mat),2, nrow(mat))))
Или это также можно сделать с помощью aggregate
aggregate(mat, by = list(rep(1:2, each = 2)), FUN = sum)[-1]
данные
mat <- matrix(1:16, 4, 4)