matrix <- matrix(1:20,nrow=4,ncol=5)
(matrix <- matrix(1:20,nrow=4,ncol=5))
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
(vector <-c(2,4,3,5,2))
[1] 2 4 3 5 2
我想将矩阵中的每一列除以向量中的相应元素,例如列 1 中的所有值除以 2,列 2 中的所有值除以 4,依此类推。
> (matrix/vector)
[,1] [,2] [,3] [,4] [,5]
[1,] 0.5 2.50 1.8 4.33 4.25
[2,] 0.5 3.00 5.0 2.80 6.00
[3,] 1.0 1.75 5.5 7.50 3.80
[4,] 0.8 2.67 3.0 8.00 10.00
直接按向量划分矩阵似乎不可用,如果我得到任何有用的答案,非常感谢。
这是sweep
的完美用例 -
sweep(matrix, MARGIN = 2, STATS = vector, `/`)
[,1] [,2] [,3] [,4] [,5]
[1,] 0.5 1.25 3.000000 2.6 8.5
[2,] 1.0 1.50 3.333333 2.8 9.0
[3,] 1.5 1.75 3.666667 3.0 9.5
[4,] 2.0 2.00 4.000000 3.2 10.0