У меня есть матрица m (состоящая из трех столбцов, каждый из которых состоит из целых чисел и имеет среднее значение 5,10 и 15 соответственно):
m <- round(matrix(data=cbind(rnorm(30, 5), rnorm(30, 10), rnorm(30, 15)), nrow=30, ncol=3), 0)
Теперь я хотел бы иметь матрицу с такими же размерами, что и m, где каждое значение x рассчитывается как x минус среднее значение столбца, в котором найден x. Как это может быть сделано? Я пытался применить различные функции применения (в частности, я смотрел на два вопроса user3640617 и User60 ), но проблема, кажется, в том, что я не могу использовать среднее строки в качестве аргумента в sapply
, lapply
или vapply
...
Пример: если head(m)
равно
[,1] [,2] [,3]
[1,] 6 11 14
[2,] 6 8 16
[3,] 6 11 15
[4,] 6 10 17
[5,] 5 9 15
[6,] 3 10 15
Я хочу получить
[,1] [,2] [,3]
[1,] 1 1 -1
[2,] 1 -2 1
[3,] 1 1 0
[4,] 1 0 2
[5,] 0 -1 0
[6,] -2 0 0