Просто присвойте результат квантили как новый столбец. Затем запустите ave
или aggregate
для средних продаж.
dom$quant <- sapply(dom$INCOME, applyQuant)
На самом деле, cut
не требует цикла, такого как sapply
, поэтому присваивайте столбец напрямую:
dom$quant <- cut(dom$INCOME,
breaks = c(quantile(dom$INCOME, probs = seq(0,1, by = 0.25))),
labels = c("Q1", "Q2", "Q3", "Q4"), include.lowest = TRUE)
# NEW COLUMN AGGREGATION
dom$quant_sales_mean <- with(dom, ave(SALES, quant, FUN=mean))
dom
# NEW DATA FRAME AGGREGATION
agg_df <- aggregate(SALES ~ quant, dom, mean)
agg_df