【发布时间】:2021-03-11 09:01:05
【问题描述】:
我有一个由三个变量组成的数据集:“customer_ID”、“date”、“Purchase_amount”。
如果唯一 customer_ID 出现在指定日期之后,我需要对数据集应用过滤器以删除它们。
我在想这样的事情:filter(df, !unique(customer_ID) & date>=2019-12-31)
或者If() 函数更适合这里。
我应该怎么做?
----编辑----
上下文是我正在尝试进行 CLV 分析,这需要我将数据集拆分为估计期和保持期。上述数据集中的每个观察值都代表客户在给定日期以给定金额进行的交易。同一客户可以多次购买,这只会导致客户 ID 显示多次。为了进行分析,我需要从保留期中删除所有新获取的客户,因为我只对起始客户组感兴趣,看看有多少客户在估计期间决定再次购买在保留期内。
为了说明问题,我创建了一些模型数据:
ID=c(1,2,3,1,3,4)
date=c('2020-01-01','2020-01-05','2020-01-19','2020-02-03','2020-02-14','2020-02-21')
purchase_amount=c(24,20,19,30,22,24)
data.frame(ID,date,purchase_amount)
我想创建一个过滤器,用于删除包含 2020 年 1 月 31 日之后出现的唯一 customer_ID 的每个观察。在本例中,这意味着 customer_ID 为 4 的客户将被删除.请记住,即使 customer_ID 2 是唯一的,交易也不会在指定日期之后发生,因此不应将其删除。
【问题讨论】:
标签: r