2015-11-04 2 views
1

Я пытаюсь установить значение порядка того, какие электронные письма были открыты для каждого пользователя. В основном сценарий, который подсчитывает и устанавливает, когда электронные письма были прочитаны для пользователя.Cumlative count уникальных значений переменной для пользователя в 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.

Может ли кто-нибудь помочь мне?

ответ

0

Попробуйте

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

Или

setDT(df2)[Date_Opened !='', count:= cumsum(!duplicated(Emails)) , Users] 
Смежные вопросы