State |>
filter(date %in% (c(1990, 1995, 1999, 2005, 2006, 2009) |> paste0("-01-01") |> as.Date()),
seasonal == F) |>
mutate(group = 1+ floor((1:n()-1)/2)) |>
group_by(geo, group) |>
arrange(date) |>
mutate(HP_d1ln = log(value) - lag(log(value), 1),
year = year(date),
minyear = min(year),
maxyear = max(year),
period = paste0(minyear, "-", maxyear)) |>
filter(!is.na(HP_d1ln)) |>
ungroup() |>
left_join(geo, by = "geo") |>
select(period, geo, Geo, HP_d1ln) |>
spread(period, HP_d1ln) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}