r中每个用户的变量的唯一值的累计计数

时间:2015-11-04 10:04:00

标签: r

我试图设置每个用户打开的电子邮件的订单值。 基本上是一个脚本,用于计算和设置何时为用户读取电子邮件。

Users   Emails     Date_Sent    Date_Opened   Count
user1   email a    01/1/2015    02/1/2015     1
user1   email b    12/3/2015        
user1   email c    08/5/2015    10/5/2015     2
user1   email d    04/6/2015    04/6/2015     3
user1   email e    05/8/2015    05/8/2015     4
user2   email b    06/1/2015        
user2   email c    07/1/2015    08/1/2015     1
user2   email d    14/2/2015        

到目前为止,我已尝试过此代码

data$count <- with(data, ave(Emails, Users,
                   FUN = function(x) cumsum(!duplicated(x))))

它通过计算每个用户的电子邮件来工作。我还在弄清楚它是如何限制它只是那些在Date_Opened字段中有数据的人。

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

尝试

library(data.table)
setDT(df2)[Date_Opened!='',Count := 1:.N , Users]

或者

 setDT(df2)[Date_Opened !='', count:= cumsum(!duplicated(Emails)) , Users]