在基地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)
(开始接受你喜欢的答案和投票)
这是使用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)