我有一个366 * 1055维度的矩阵。我想连续减去每个值(每行包含1055个元素)及其各自的rowMedian值。如何去做?
答案 0 :(得分:2)
使用基础包。矩阵m1来自akrun的答案。
<强>解释强>
我们可以使用apply
函数将函数median
应用于矩阵m1中的每一行。我们将第二个参数设置为1表示该函数将应用于行(逐行)。应用函数在R中非常有用。有关更多详细信息,请在控制台中键入?apply
,或者通过Joran进行彻底的answer检查。
m1 - apply(m1, 1, median)
输出
[,1] [,2] [,3] [,4] [,5]
[1,] -1 3 -3 0 1
[2,] -1 0 2 -1 0
[3,] 1 0 1 -3 -4
[4,] 3 4 -1 -1 0
[5,] 3 0 -1 6 -3
[6,] 3 3 0 -4 -6
[7,] 0 -1 -2 5 1
[8,] 2 -5 0 1 -2
[9,] 2 -1 0 0 -4
[10,] 0 -1 -2 7 1
答案 1 :(得分:1)
我们可以使用rowMedians
中的matrixStats
来计算行median
并从矩阵&m 39&#39;中减去它。
library(matrixStats)
m1 - rowMedians(m1, na.rm=TRUE)
set.seed(24)
m1 <- matrix(sample(0:9, 10*5, replace=TRUE), ncol=5)