Суммировать две строки в матрице - PullRequest
0 голосов
/ 03 октября 2019

Рассмотрим следующую матрицу:

mat <- cbind(c(5,2,5),c(6,3,2))

Я хочу сложить две первые строки, поэтому получаю следующую матрицу:

7 9
5 2

Как мне это сделать в R?

Ответы [ 2 ]

3 голосов
/ 03 октября 2019

Вы должны использовать rowsum:

> rowsum(mat, c(1,1,2))
  [,1] [,2]
1    7    9
2    5    2

Первый аргумент - это ваша матрица mat, второй - как сгруппировать строки. Здесь c(1,1,2) указывает, что первые две строки находятся в одной группе (и суммируются), а третья строка находится в другой группе.

Примечание: не путайте это с rowSums - другой функцией.

2 голосов
/ 03 октября 2019

Мы можем использовать colSums для суммирования первых n строк и rbind оставшихся

n <- 2
rbind(colSums(mat[seq_len(n), ]), mat[(n + 1):nrow(mat), ])
#      [,1] [,2]
#[1,]    7    9
#[2,]    5    2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...