如何将一列分组为间隔,并聚合另一列中的相应值

use*_*551 -5 grouping aggregate r intervals

在datafreame中,我有2个变量,一个是发送的免费样本数,另一个是产生的购买数.我想将自由样本变量分组为0,1到5,5到10,大于10的间隔.然后累计来自购买数列的观察结果,每个间隔以表格形式呈现.

任何帮助将不胜感激

Joh*_*ohn 8

在基地R中,这样做的方式很简单.首先生成新变量,然后使用ave()

binnedSamples <- cut( myDF$freeSamples, breaks = c(0, 1, 5, 10, 10^6) )
tapply( myDF$purchases, binnedSamples, sum )
Run Code Online (Sandbox Code Playgroud)

(开始接受你喜欢的答案和投票)


Ram*_*ath 5

这是使用plyr库的一种方法

require(plyr)
mydf = data.frame(
  npurchases = rpois(20, 10),
  nsamples  = rpois(20, 10)
)

ddply(mydf, .(cut(nsamples, breaks = c(0, 1, 5, 10, 10^6))), summarize, 
    npurchases = sum(npurchases))
Run Code Online (Sandbox Code Playgroud)