【发布时间】:2019-11-18 02:58:03
【问题描述】:
例如:
data <- mtcars %>% select(wt, mpg, disp)
我想获取disp 的每个前 5% 步长的每列的平均值。这将产生 20 行,前 5% 的平均值 disp,前 10% 的平均值 disp,前 15% 的平均值 disp ...
像这样:
tops <- seq(.05, 1, by = 0.05)
# define list to save tibble of ecah LOPO
all_tops <- vector("list", length(tops))
names(all_tops) <- str_c("top", tops)
for (top in tops) {
all_tops[[str_c("top", top)]] <- summarise_all(top_frac(data, top, disp), mean) %>% add_column(Top = top, .before = 1)
}
bind_rows(all_tops)
需要一个更整洁的解决方案,可能不使用for。
【问题讨论】:
-
你的意思是
mtcars %>% group_by(group = findInterval(disp, quantile(disp,seq(0.05, 1, 0.05)))) %>% summarise_at(vars(wt, mpg, disp), mean)吗?