【发布时间】:2018-04-21 03:49:47
【问题描述】:
如何使每个组在求和后大小相等?
以下是将数量分成 10 组的示例,每组的商品数量相同。
set.seed(42)
quantity <- c(runif(100, 0, 100))
dat <- data.frame(
qty = quantity,
qtile = cut(quantity, quantile(quantity, seq(0, 1, 0.1)),
include.lowest = TRUE))
dat <- dat %>% group_by(qtile) %>% summarise(qty = sum(qty))
ggplot(dat, aes(qtile, qty)) + geom_bar(stat = 'identity')
但是我如何对组进行排序,以便在summarise 步骤中,qty 变量在组中大致相等?
所以在这个例子中,qty 的总数是5244.787,每个组在summarise 之后会有524.4787。
【问题讨论】:
-
dplyr有一个cut_number函数。来自文档:“cut_number使 n 组具有(大约)相同数量的观察” -
@camille,我不是在寻找相同数量的观察组。我正在按组寻找大致相等的总和。有关示例,请参见我的答案。还是谢谢你!
标签: r