R的最小滚动

时间:2019-02-22 10:10:38

标签: r

我的数据具有以下结构:

data.frame(value = c(1, 2, 10), date = as.Date(c('2018-01-01', '2018-01-02', '2018-01-04')))

,我想使用最近两天的窗口来计算每行值的滚动最小值。也就是说,此计算的输出应为

data.frame(value = c(1, 2, 10), date = as.Date(c('2018-01-01', '2018-01-02', '2018-01-04')),
       minimum = c(1, 1, 10))

是否有使用tidyverse进行此操作的简单方法?

1 个答案:

答案 0 :(得分:1)

可以去:

library(dplyr)

df %>%
  mutate(
    minimum = sapply(date, function(x) min(value[between(date, x - 1, x)]))
  )

输出:

  value       date minimum
1     1 2018-01-01       1
2     2 2018-01-02       1
3    10 2018-01-04      10