gpt4 book ai didi

R:data.table中的累积加权平均值

转载 作者:行者123 更新时间:2023-12-02 20:54:55 27 4
gpt4 key购买 nike

依据如下数据表:

library(data.table)
dt <- data.table(Position = 1:3, Price = c(50, 45, 40), Volume = c(10, 10, 10))

dt
Position Price Volume
1: 1 50 10
2: 2 45 10
3: 3 40 10

现在我想计算每个位置的加权平均值,考虑到所有位置 "<="当前位置。结果应该是:

dt[, Vwa := c(50, 47.5, 45)]

dt
Position Price Volume Vwa
1: 1 50 10 50.0
2: 2 45 10 47.5
3: 3 40 10 45.0

知道如何有效地实现这一目标吗?

最佳答案

假设您的Position列包含唯一值并且已预先排序,您可以根据加权平均值的定义进行计算。如果体积是权重因子:

dt[, Vwa := cumsum(Price * Volume)/cumsum(Volume)]
dt
# Position Price Volume Vwa
#1: 1 50 10 50.0
#2: 2 45 10 47.5
#3: 3 40 10 45.0

关于R:data.table中的累积加权平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40845889/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com