【发布时间】:2021-08-19 23:17:41
【问题描述】:
假设你在 R 中有这个 data.frame
set.seed(15)
df <- data.frame(cat = rep(c("a", "b"), each = 50),
x = c(runif(50, 0, 1), runif(50, 1, 2)))
我想估计每个类别中 10% 上限值和下限值的平均值。
我可以使用 base 这样的函数来做到这一点
dfa <- df[df$cat=="a",]
dfb <- df[df$cat=="b",]
mean(dfa[dfa$x >= quantile(dfa$x, 0.9),"x"])
# [1] 0.9537632
mean(dfa[dfa$x <= quantile(dfa$x, 0.1),"x"])
# [1] 0.07959845
mean(dfb[dfb$x >= quantile(dfb$x, 0.9),"x"])
# [1] 1.963775
mean(dfb[dfb$x <= quantile(dfb$x, 0.1),"x"])
# [1] 1.092218
但是,我不知道如何使用dplyr 或purrr 来实现它。
感谢您的帮助。
【问题讨论】: