¿如何在 r 中将权重应用于我的数据框?

¿How do apply weights to my data frame in r?

所以我想要将权重应用到我的数据框中的观察结果,而且我已经有一整列包含我想应用到我的数据的权重。

这就是我的数据框的样子。

weight count
3 67
7 355
8 25
7 2

基本上我想要的是用 WEIGHT 列的相应权重对 COUNT 列的每个值进行加权。例如,我的列Count的值67应该被3加权,我的列Count的值355应该被7加权,依此类推。

我尝试使用 questionr 包中的代码。

wtd.table(data1$count, weights = data1$weight)

但是这段代码改变了我的数据框,最终将我的 1447 行减少到只有 172 个条目。我想要的是保持我的确切条目数。

我想要的输出应该是这样的。我只想用加权值向我的数据框添加另一列。

Count Count applying weights
67 ####
355 ###

我仍然不确定如何以您想要的方式将权重应用于计数数据。 我只是想表明您可以使用 dplyr 以方便的方式基于前一列创建一个新列。例如:

mydf
#  weight count
# 1      3    67
# 2      7   355
# 3      8    25
# 4      7     2

mydf %>% mutate(weightedCount = weight*count, 
                percentRank = percent_rank(weightedCount), 
                cumDist = cume_dist(weightedCount))

#  weight count weightedCount percentRank cumDist
# 1      3    67           201   0.6666667    0.75
# 2      7   355          2485   1.0000000    1.00
# 3      8    25           200   0.3333333    0.50
# 4      7     2            14   0.0000000    0.25

这里weightedCountweightcount相乘,percentRank表示weightedCountcumDist中各数据的排名显示 weightedCount.

中数据的累积分布

这是一个例子。您可以创建另一个列并以类似的方式应用其他功能。