I have a data.frame like this.
library(tidyverse)
df <- tibble(
name = rep(c("a", "b"), each = 100),
value = runif(100*2),
date = rep(Sys.Date() + days(1:100), 2)
)
I would like to do something very similar to the code below. Is there a way to create these 10 columns in one go? Basically, I am trying to find out how much does 99th percent quantile change if we remove one observation, and then 2, and then 3 and so on.
df %>%
nest_by(name) %>%
mutate(
q99_lag_0 = data %>% pull(value) %>% quantile(.99),
q99_lag_1 = data %>% pull(value) %>% tail(-1) %>% quantile(.99),
q99_lag_2 = data %>% pull(value) %>% tail(-2) %>% quantile(.99),
q99_lag_3 = data %>% pull(value) %>% tail(-3) %>% quantile(.99),
q99_lag_4 = data %>% pull(value) %>% tail(-4) %>% quantile(.99),
q99_lag_5 = data %>% pull(value) %>% tail(-5) %>% quantile(.99),
q99_lag_6 = data %>% pull(value) %>% tail(-6) %>% quantile(.99),
q99_lag_7 = data %>% pull(value) %>% tail(-7) %>% quantile(.99),
q99_lag_8 = data %>% pull(value) %>% tail(-8) %>% quantile(.99),
q99_lag_9 = data %>% pull(value) %>% tail(-9) %>% quantile(.99),
q99_lag_10 = data %>% pull(value) %>% tail(-10) %>% quantile(.99)
)