gpt4 book ai didi

r - 如何使用 data.table 获取滚动产品

转载 作者:行者123 更新时间:2023-12-04 01:20:57 25 4
gpt4 key购买 nike

dt <- data.table(x=c(1, .9, .8, .75, .5, .1))
dt
x
1: 1.00
2: 0.90
3: 0.80
4: 0.75
5: 0.50
6: 0.10

对于每一行,我如何获得该行和接下来两行的 x 的乘积?
      x Prod.3
1: 1.00 0.7200
2: 0.90 0.5400
3: 0.80 0.3000
4: 0.75 0.0375
5: 0.50 NA
6: 0.10 NA

更一般地说,对于每一行,我如何获得该行和接下来的 n 行 x 的乘积?

最佳答案

你可以试试

library(zoo)
rollapply(dt, 3, FUN = prod)
x
[1,] 0.7200
[2,] 0.5400
[3,] 0.3000
[4,] 0.0375

匹配预期输出
dt[, Prod.3 :=rollapply(x, 3, FUN=prod, fill=NA, align='left')]

关于r - 如何使用 data.table 获取滚动产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30603999/

25 4 0