我试图设置每个用户打开的电子邮件的订单值。 基本上是一个脚本,用于计算和设置何时为用户读取电子邮件。
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字段中有数据的人。
有人可以帮帮我吗?
答案 0 :(得分:0)
尝试
library(data.table)
setDT(df2)[Date_Opened!='',Count := 1:.N , Users]
或者
setDT(df2)[Date_Opened !='', count:= cumsum(!duplicated(Emails)) , Users]