将公式应用于R中的变量时间序列

Applying formula to variable time series in R

我在 R 中有一个数据框,我必须 运行 保留报告。我需要 运行 df 销售月-年 sequence/subsets 的保留公式。

Sale_date,  Cancel_date,  days_to_cancel, sale_month;

2015-01-01, 2015-04-06,  95,              2015-01;  
2015-04-01,           , NA,              2015-04;  
2015-10-31, 2015-11-02, 3,               2015-10;  
2013-05-20, 2014-05-20, 365,             2013-05; 

我已经格式化了会员销售日期和取消日期的列 as.Date。我还创建了一个新列 df$days_to_cancellation as.numeric,告诉我取消会员资格所需的天数(取消日期-销售日期,na.strings=NA),以及sale_month 列,以便于排序。我使用以下公式计算保留百分比: (1-(x_days_Cancel_rate)) 其中 x 可以是 15,30,60,90,120 等...天

例如,要计算 10 月份售出的会员资格的 60 天保留率,我将使用:

October_Retention<-1-(sum(df$sale_date>="2015-10-01"&df$sale_date<"2015-11-01"&df$days_to_cancel<=60,na.rm=T)/sum(df$sale_date>="2015-10-01"&df$sale_date<"2015-11-01")

它正确地提供了 10 月份出售的会员资格的 60 天保留。

我的问题是,除了为每个月和每个 X 天变量手动创建一个 Month*_Retention 对象之外,是否还有另一种方法告诉 R 运行 一月至十二月的公式例如,30- 60- 90 -120 天的保留?我需要一种方法来告诉 R 运行 每个销售月和每个变量 x 天的公式。

我在 excel 多年来一直在 运行 关注这份特别报告,我可能只是以错误的方式处理了这个问题。附件是我试图在 R 中完成的图像。

任何和所有输入将不胜感激

retention graph

使用dplyr,您可以获得如下月费率:

library(dplyr)
report <- df %>%
  group_by(sale_month) %>%
  summarise(retention30 = round(sum(is.na(days_to_cancel) | days_to_cancel > 30) / n() * 100, 1),
            rentention60 = round(sum(is.na(days_to_cancel) | days_to_cancel > 60) / n() * 100, 1))

在这种情况下,我在每个保留期内都不会取消。您可以修改条件以满足您在这方面的需求。