我有一个数据集,我试图按订单周期计算保留客户的数量,但由于同一客户在多个时间段内订购的订单,数据集中有许多重复项,因此将它们作为新条目包含在内(观察)在数据集中。不幸的是,其中许多包含重复的 ID/人员编号,所以我想知道是否有任何类型的正则表达式或过滤器我可以使用来检查保留的列,然后如果保留的值相同,则删除重复的 ID/人员编号.
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),]
但我需要代码来应用某种条件,首先查看保留的列。
您可以使用dplyr的不同功能
df_cleaned <- df %>% distinct(PERSONUM, retained,.keep_all=TRUE)
上面的代码保留了具有不同“PERSONUM”和“retained”值的记录
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句