partition <- function(.data, variable, amount) {
y <- rlang::enquo(variable)
z <- rlang::enquo(amount)
key <- .data %>%
dplyr::arrange(!!y) %>%
dplyr::filter(I) %>%
dplyr::mutate(lower = !!y - !!z,
upper = !!y + !!z,
overlaps_prev = lower < dplyr::lag(upper, default = lower[[1]]),
chunk = cumsum(!overlaps_prev)) %>%
dplyr::group_by(chunk) %>%
dplyr::summarise(lower = min(lower),
upper = max(upper))
purrr::pmap_dfr(.l = list(chunk = key$chunk, upper = key$upper, lower = key$lower), .f = carve, .data = .data, variable = !!y)
}
carve <- function(chunk, upper, lower, .data, variable) {
y <- rlang::enquo(variable)
.data %>%
dplyr::filter(!!y > lower,
!!y < upper) %>%
dplyr::mutate(chunk = chunk)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.