如何计算R中该行之前日期的变量的行均值?

时间:2019-05-27 12:18:29

标签: r

我有一个包含50,000行以上的大数据框,将其一部分放在下面。它有两列,如下所示。我想根据审查日期计算每一行的费率平均值。我的意思是每一行的平均费率是该行日期之前发布的费率的平均值。您能否帮助我在R中对mean_rate的计算进行编码?a part of the data frame is here

2 个答案:

答案 0 :(得分:1)

zoo软件包具有功能rollapply

> rate <- c(3, 4, 1, 5)
> c(NA,rate[1],rollapply(rate,2:4,mean))
[1]       NA 3.000000 3.500000 2.666667

答案 1 :(得分:0)

这里是一种选择:

n <- nrow(data)
data[-1, "mean_rate"] <- with(data, cumsum(rate[-n]) / seq_len(n-1))

示例数据:

data <- data.frame(
  date = paste(c("May", "Apr", "Mar", "Feb"), "2019"),
  rate = c(3, 4, 1, 5)
)