我的數據框看起來像這樣。最右邊的兩列是我期望的列。從過去21天的窗口中提取事件類型
**Name ActivityType ActivityDate Email(last 21 says) Webinar(last21)**
John Email 1/1/2014 NA NA
John Webinar 1/5/2014 NA NA
John Sale 1/20/2014 Yes Yes
John Webinar 3/25/2014 NA NA
John Sale 4/1/2014 No Yes
John Sale 7/1/2014 No No
Tom Email 1/1/2015 NA NA
Tom Webinar 1/5/2015 NA NA
Tom Sale 1/20/2015 Yes Yes
Tom Webinar 3/25/2015 NA NA
Tom Sale 4/1/2015 No Yes
Tom Sale 7/1/2015 No No
我只是想創建一個是/否變量,表示是否有電子郵件或在過去的21天,每個「銷售」交易網絡研討會。我正沿着使用dplyr這樣的思路思考(模擬代碼):
custlife %>%
group_by(Name) %>%
mutate(Email(last21days)=lag(ifelse(ActivityType = "Email" & ActivityDate of email within (activity date of sale - 21),Yes,No)).
我不知道的方式來實現這一點。請幫助。您的幫助真誠地感謝!
如果你有所有的日子,例如2014年1月1日,2014年2月1日,2014年3月1日......那麼你可以在'工作cumsum(Email)'和'lag(x,k = 21)'。順便說一下,在上述問題的背景下,NA電子郵件行可以被跳過。其他效率低下的方法是在不超過21天或同一天的時間內生成一組具有上述電子郵件的日期。然後做一個原始設置的連接。 – Pafnucy
爲什麼'網絡研討會'行也有''是'「,你不是在檢查'銷售'行嗎? –
@DavidArenburg你是對的。我在製作示例時犯了一個錯誤。謝謝你指出。 – gibbz00