Add previous 7-day mean (excluding current day) of a variable to a dataframe by group

PHOTO EMBED

Wed Mar 24 2021 16:52:56 GMT+0000 (Coordinated Universal Time)

Saved by @KarlFH #r

library(tidyverse)
library(purrr)
library(zoo)

data %>% 
  group_by(group_name) %>% 
  nest() %>% 
  mutate(data = pmap(list(data),
                     ~ mutate(.x,
                              r_mean = lag(rollmean(x = var_name, k = 7, fill = NA, align = "right")))
                     )
  ) %>% 
  unnest(cols = data)
content_copyCOPY

- change k to adjust number of days - change align from "right" to "center" or "left" to adjust window of rolling mean - delete lag() from rollmean() if you want it to include current day (or change to lead if you're using "left" alignment