Вы можете apply
функцию ifelse
для столбцов, в которых вы хотите умножить значения:
mat[,1:2] <- t(apply(mat[,1:2], 1, function(x) ifelse(x >= 20 & x <=30, x*2,
ifelse(x >= 30 & x <=40, x*3, x))))
Результат:
mat
Var1 Var2 Var3
[1,] 40 120 50
[2,] 50 5 6
[3,] 40 13 45
[4,] 3 8 100
Данные:
mat <- structure(c(20L, 25L, 20L, 3L, 40L, 5L, 13L, 8L, 50L, 6L, 45L,
100L), .Dim = 4:3, .Dimnames = list(NULL, c("Var1", "Var2", "Var3"
)))