在datafreame中,我有2个变量,一个是发送的免费样本数,另一个是结果的购买数。我想将自由样本变量分组为0,1到5,5到10,大于10的间隔。然后累计每个区间的购买数列的观察结果以表格形式呈现。
非常感谢任何帮助
答案 0 :(得分:8)
在基地R中,这样做的方法很简单。首先生成新变量,然后使用ave()
binnedSamples <- cut( myDF$freeSamples, breaks = c(0, 1, 5, 10, 10^6) )
tapply( myDF$purchases, binnedSamples, sum )
(开始接受你喜欢的答案和投票)
答案 1 :(得分: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))