Eingang
Nehmen wir an, ich möchte für jede IMEI-Nummer einen Ausnahmefall prüfen - wenn es andere Dienste gibt, die nach dem Austausch eines Produkts protokolliert wurden. Wie bekomme ich das Ergebnis in r so etwas?
Ausgang
Grundsätzlich sollten nach dem Austausch keine Anrufprotokolle für dieselbe IMEI erstellt werden
Lösung des Problems
Ich glaube, Sie können nach gruppieren IMEI
und filtern, wo
swap
existiert als einer der Diensttypen für diese IMEI, ANDdf %>% group_by(IMEI) %>%
filter(
any(`Service type` == "swap"),
last(`Service type`,order_by = `accept time`)!="swap"
)
Ausgabe:
IMEI `Service type` `accept time` `order id`
<dbl> <chr> <dttm> <chr>
1 123 in warranty 2021-09-20 21:07:00 ID21
2 123 swap 2021-09-14 19:03:00 ID70
Eingang:
df = tibble(
IMEI = c(123,124,165,123),
`Service type` = c("in warranty", "repair", "in warranty", "swap"),
`accept time` = c("20-09-2021 21:07","22-10-2021 17:09","18-08-2021 09:10","14-09-2021 19:03"),
`order id` = c("ID21","ID24","ID65","ID70")
) %>% mutate(`accept time` = lubridate::as_datetime(`accept time`,format = "%d-%m-%Y %H:%M"))
Keine Kommentare:
Kommentar veröffentlichen