【发布时间】:2021-09-09 04:24:41
【问题描述】:
我有一个数据集,我试图按订单周期计算留存客户的数量,但在数据集中,由于同一客户在多个时间段内订购的订单有很多重复,因此它们被包含为数据集中的新条目(观察)。不幸的是,其中许多包含重复的 ID/人员编号,所以我想知道是否有任何类型的正则表达式或过滤器可以使用来检查 retained 列,然后删除重复的 ID/人员编号,如果retained中的值是一样的。
tibble::tribble(
~PERSONUM, ~ID, ~ORDER_PERIOD, ~retained,
10001685, 10109887, "201750", "Y",
10001685, 10109887, "201850", "Y",
10001685, 10109887, "201950", "Y",
10005733, 10162571, "201550", "Y",
10005787, 10112896, "201550", "Y",
10005795, 10112901, "201550", "Y",
10005795, 10112901, "201650", "Y",
10005795, 10112901, "201750", "Y",
10020043, 10156305, "202050", "Y",
10020165, 10122910, "201750", "Y",
10020165, 10122910, "201850", "Y",
10020649, 10123585, "201550", "N",
10028842, 10128545, "201750", "Y",
52300090, 10147580, "201850", "N",
52300740, 10149860, "201650", "N",
52300749, 10135925, "201750", "Y",
52300749, 10135925, "201850", "Y",
52300917, 10140173, "201650", "Y",
52300917, 10140173, "201750", "Y",
52300917, 10140173, "201850", "Y"
)
我正在考虑使用 df %>% filter(ID==ID) 但显然 ID 将始终等于自身,我知道有重复的函数,我考虑过使用类似的东西
df_cleaned <-df[!duplicated(df),]
但我需要代码来应用某种首先查看保留列的条件。
【问题讨论】:
标签: r duplicates conditional-statements