【发布时间】:2019-02-19 14:02:21
【问题描述】:
我正在努力解决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)
当我使用 quantile 函数进行 mutate + 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]>
将五个分位数存储为我的数据框的五个新列的优雅方法是什么?
【问题讨论】: