比较R中动态日期之前和之后的计数

时间:2017-08-19 00:48:33

标签: r

我的公司抛出事件以增加对平台的参与度。我已经加入了参与数据的事件数据框。我试图衡量这些事件的表现,看看参与度是否在增加,但我似乎无法弄清楚如何将事件前观察的数量与事后观察结果进行比较。如果有人可以指出如何通过数据框中的日期来限制计数,这可能会解决我的问题。

这是我数据头部的一个例子。

ID  Factor_date event_date  event_name
1   12/2/2016   10/24/2016  Party1
2   11/28/2016  10/24/2016  Party4
3   12/1/2016   4/28/2016   Party6
4   11/25/2016  10/25/2016  Party3
5   11/28/2016  3/20/2017   Social awareness event1
6   12/2/2016   12/6/2016   Party1

我们有一个用户的ID。 factor_date是平台上的参与日期,事件日期是我们举办活动的日期。我是R.的新手。

1 个答案:

答案 0 :(得分:0)

日期总是有点痛苦,但是整齐的套餐有很多帮助。我的示例使用了lubridate包中的函数。你可以只安装lubridate,但我建议安装所有的tidyverse软件包,它们非常有用。

我相信你想要计算之前发生的事件数和事件发生后的数量,这是正确的吗?我还提供了一个代码,让您知道在此之前或之后多久,这也很有用。

library(tibble)
library(lubridate)

ID <- 1:6
#-- using proper date formating from lubridate
Factor_date <- mdy(c("12/2/2016", "11/28/2016",
                     "12/1/2016", "11/25/2016", "11/28/2016",
                     "12/2/2016"))
event_date <- mdy(c("10/24/2016", "10/24/2016", "4/28/2016", "10/25/2016",
                    "3/20/2017", "12/6/2016"))
event_name <- c("Party1", "Party4", "Party6", "Party3",
                "Social awareness event1", "Party1")

#-- reconstruct data into a tibble
data <- tibble(ID, Factor_date, event_date, event_name)

#-- recover the time difference in a difftime object
engagement_time <- Factor_date - event_date

post_event_count <- sum(engagement_time > 0)
pre_event_count <- sum(engagement_time <= 0)