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