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

发布于 2024-11-27 15:28:05 字数 132 浏览 1 评论 0原文

在数据框架中,我有 2 个变量,一个用于发送的免费样品数量,另一个用于结果的购买数量。我想将免费样本变量分组为 0、1 到 5、5 到 10、10 以上的区间。然后累积每个区间内的购买数量列的观察结果以呈现为表格。

任何帮助将不胜感激

In a datafreame i have 2 variables, one for number of Free Samples sent, and the other for Number of Purchases resulted. I would like to group free sample variables into intervals of say 0, 1 to 5, 5 to 10, more than 10. Then cumulate the observations from the number of purchases column withing each of the intervals to present as a table.

Any help would be greatly appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

束缚m 2024-12-04 15:28:05

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

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

(开始接受答案并对您喜欢的答案进行投票)

In base R the way to do it is straightforward. First generate your new variable and then use ave()

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

(start accepting answers and voting ones you like up as well)

永不分离 2024-12-04 15:28:05

这是使用 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))

Here is one way using the plyr library

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))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文