Q:

Como fazer variação inter-semanal no R

Tenho uma base de dados no formato longo e necessito fazer a variação inter-semanal, ou seja, o dado de hoje / dado 7 dias atrás - 1. 
Código que utilizei, mas está fazendo a variação do dia anterior:
library(readr)

dados <- read_delim("~/Downloads/arquivo_geral.csv", 
                                        ";", escape_double = FALSE, trim_ws = TRUE)

dados[["variacaoCasos"]] <- ((dados$casosAcumulados/lag(dados$casosAcumulados, k = 7))-1)

Base de dados que estou utilizando: https://covid.saude.gov.br/
Obrigado.

A:

Você pode usar as funções dplyr::lag() e base::diff().
A função diff(x, n) vai retornar a diferença dos valores de n dias atras.
A função lag(x, n) vai retornar os valores de n dias atras.
Assim, com o código abaixo temos uma taxa de crescimento semanal.
library(tidyverse)

dados <- read_delim("~/Downloads/arquivo_geral.csv", 
                    ";", escape_double = FALSE, trim_ws = TRUE)

dados %>% 
  group_by(regiao, estado) %>% 
  mutate(dif_semanal = c(rep(NA, 7), diff(casosAcumulados, 7)),
         percentual_dif = dif_semanal / lag(casosAcumulados, 7)) %>% 
  select(-ends_with("os")) %>% 
  tail()
#> # A tibble: 6 x 5
#> # Groups:   regiao, estado [1]
#>   regiao       estado data       dif_semanal percentual_dif
#>   <chr>        <chr>  <date>           <dbl>          <dbl>
#> 1 Centro-Oeste DF     2020-04-18         183          0.316
#> 2 Centro-Oeste DF     2020-04-19         213          0.347
#> 3 Centro-Oeste DF     2020-04-20         234          0.367
#> 4 Centro-Oeste DF     2020-04-21         230          0.353
#> 5 Centro-Oeste DF     2020-04-22         264          0.387
#> 6 Centro-Oeste DF     2020-04-23         247          0.345

Created on 2020-04-24 by the reprex package (v0.3.0)

