Вот один из способов.
Сначала я покажу принцип:
x <- matrix(1:20, nrow=2)
x[, seq(1, 7, 3)] <- x[, seq(1, 7, 3)] - x[, seq(3, 9, 3)]
x[, seq(2, 8, 3)] <- x[, seq(2, 8, 3)] - x[, seq(3, 9, 3)]
x
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] -4 -2 5 -4 -2 11 -4 -2 17 19
[2,] -4 -2 6 -4 -2 12 -4 -2 18 20
А затем я определю вспомогательную функцию, которая будет немного меньше печатать:
myseq <- function(start, object=x){
seq(start, 3 * (ncol(x) %/% 3), 3)
}
x <- matrix(1:20, nrow=2)
x[, myseq(1)] <- x[, myseq(1)] - x[, myseq(3)]
x[, myseq(2)] <- x[, myseq(2)] - x[, myseq(3)]
x
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] -4 -2 5 -4 -2 11 -4 -2 17 19
[2,] -4 -2 6 -4 -2 12 -4 -2 18 20