假设我有一个缩放因子,例如:
sf<-c(0.9, 0.8, 1.1)
和矩阵:
m0<-matrix(c(1:6), nrow=2, ncol=3)
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
将m
的每一列与sf
的相应元素相乘的最佳方式是什么,例如
m1<-matrix(c(0.9, 1.8, 2.4, 3.2, 5.5, 6.6), 2, 3)
[,1] [,2] [,3]
[1,] 0.9 2.4 5.5
[2,] 1.8 3.2 6.6
答案 0 :(得分:2)
可能不是“最佳方式”,但您可以使用sweep()
。
sweep(m0, 2, sf, "*")
# [,1] [,2] [,3]
# [1,] 0.9 2.4 5.5
# [2,] 1.8 3.2 6.6
答案 1 :(得分:2)
或者您可以使用col
m0 * sf[col(m0)]
# [,1] [,2] [,3]
# [1,] 0.9 2.4 5.5
# [2,] 1.8 3.2 6.6
或双转置
t(t(m0) * sf)
# [,1] [,2] [,3]
# [1,] 0.9 2.4 5.5
# [2,] 1.8 3.2 6.6