¿如何在 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
这里weightedCount
是weight
和count
相乘,percentRank
表示weightedCount
和cumDist
中各数据的排名显示 weightedCount
.
中数据的累积分布
这是一个例子。您可以创建另一个列并以类似的方式应用其他功能。
所以我想要将权重应用到我的数据框中的观察结果,而且我已经有一整列包含我想应用到我的数据的权重。
这就是我的数据框的样子。
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
这里weightedCount
是weight
和count
相乘,percentRank
表示weightedCount
和cumDist
中各数据的排名显示 weightedCount
.
这是一个例子。您可以创建另一个列并以类似的方式应用其他功能。