【发布时间】:2017-01-22 08:39:28
【问题描述】:
我想根据时间累计唯一的用户ID,这是数据
userid time
1 2014-10-01
1 2014-11-16
2 2014-11-14
1 2014-10-16
2 2014-11-16
3 2014-10-16
2014-10-16 的唯一 id 数量为 2,2014-11-14 的唯一 ID 数量为 3。
我想返回一个这样的矩阵
userid time count
1 2014-10-01 1
1 2014-11-16 3
2 2014-11-14 3
1 2014-10-16 2
2 2014-11-16 3
3 2014-10-16 2
我想我应该使用 cumsum 来做到这一点。实际上,我发现这个线程正在做类似的事情Cumulative count of unique values in R
但是,我遵循此线程的第一个答案,但它不适用于我的情况
【问题讨论】:
-
您的输入和预期的“时间”不正确。我猜
df1[, count := uniqueN(userid), time]可能是你想要的 -
假设您的数据按
time排序,您可能正在寻找dt[, count := cumsum(!duplicated(userid))][, count := max(count), by = time] -
已编辑“时间”输入。
-
@akrun Yours 正在计算每天的唯一身份用户总数,而不是到那个日期
-
@Lucia 好的,之前预期输出的时间列有问题,现在好像已经修复了