首页 > 解决方案 > 如何计算大数据的行加权平均值?

问题描述

我在下面有一个数据集:

x = 
        BC_aitk90_0-5cm    BC_aitk98_0-5cm   BC_aitk98b_0-5cm    BC_nn_0-5cm
   1:       1.6382072        4.281057         4.607484            15.181894
   2:       2.2413662        5.136081         5.341605            16.192835
   3:       1.0995348        3.881533         3.493945            12.063029
   4:       1.3492518        4.219009         3.818655            13.996832
   5:       2.9033433        6.072661         6.149606            17.826441

我想计算行加权平均值,但我无法得到代码和答案。我的体重是:

x = 
W = c(0.83, 0.85, 0.87, 0.93)

标签: rdataframe

解决方案


这里有两个答案:

df = data.frame(a = c(1:3), b= c(4:6))
w = c(0.5,0.3)

wm1 = t(colSums(apply(df,1,function(x) x*w)) / sum(w))

# or

wm2 = apply(df,1,function(x) weighted.mean(x,w))

推荐阅读