【发布时间】:2020-01-21 03:27:39
【问题描述】:
我有一个包含 3 列的数据表:customer_id、time_period 和购买的cookies(如果不是,则为 0,如果是,则为 1)。我想创建一个新列 (total_number_cookie_buyers) 来汇总之前购买的饼干的行,以查看到该时间点有多少人购买了饼干(例如,如果购买饼干的前三行是 0、1、0,那么中的值total_number_cookie_buyers 的第三行是 1)。我试过谷歌搜索,但找不到任何关于如何做到这一点的信息!
【问题讨论】:
-
请make this question reproducible 以纯文本格式包含一些示例数据。
-
查看“zoo”包中的“rollapply”功能。这是对数据框进行累积计算的一种方便易用的方法。
-
也许你只需要
cumsum分组。如果你有data.table这样的东西应该可以工作,dt[, total_number_cookie_buyers := cumsum(bought_cookies), customer_id]或者只是dt[, total_number_cookie_buyers := cumsum(bought_cookies)]
标签: r dataframe data-manipulation