R:如何用向量划分矩阵中的列?

  • 本文关键字:划分 何用 向量 r
  • 更新时间 :
  • 英文 :

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

最新更新