我有两个大小完全相同的矩阵:m
和w
,它们分别如下所示:
set.seed(5)
m <- matrix(rexp(90), nrow = 3 , ncol = 3)
set.seed(10)
w <- matrix(rexp(90), nrow = 3 , ncol = 3)
我想使用 w
作为权重来计算 m
的加权平均数。更准确地说,我想对 m
的每行(或每列)使用相同的 w
行(或列)作为权重进行计算。结果理想情况下将存储在向量中。例如:
w_mean_col <- c(weighted.mean(m[,1] , w[,1]) ,
weighted.mean(m[,2] , w[,2]) ,
weighted.mean(m[,3] , w[,3]) )
对于列:
w_mean_row <- c(weighted.mean(m[1,] , w[1,]) ,
weighted.mean(m[2,] , w[2,]) ,
weighted.mean(m[3,] , w[3,]) )
在使用非常大的矩阵时,这段代码非常不实用。是否有更好的代码可以自动完成此操作?