Я пытаюсь разобраться с purrr
, но я борюсь с чем-то, что должно быть легко.
Скажем, у меня есть следующие данные для мужчин и женщин
n <- 1000
toydata <- data.frame(
sex = as.character(ifelse(rnorm(n)>0, "M", "F")),
value = rnorm(n)
)
Теперь я хочу вычислить следующие пять квантилей столбца значений
p <- c(.1, .25, .5, .75, .9)
Когда я изменяю + map с помощью функции квантиля, список векторов возвращается как сохраненный в виде дополнительного столбца, какожидается:
toydata %>%
group_by(sex) %>%
nest() %>%
mutate(
quantiles = map(data, ~quantile(.$value, p, na.rm=TRUE))
)
# A tibble: 2 x 3
sex data quantiles
<fct> <list> <list>
1 F <tibble [491 × 1]> <dbl [5]>
2 M <tibble [509 × 1]> <dbl [5]>
Каков элегантный способ хранения пяти квантилей в виде пяти новых столбцов моего фрейма данных?