Удаление определенных строк в кадре данных с предопределенными условиями - PullRequest
1 голос
/ 08 июня 2019

У меня есть фрейм данных со столбцами

    shipment_id     created_at    picked_at   packed_at   shipped_at
    CSDJKH231BN     2019-02-03    2019-02-03    
    CSDJKH231BN     2019-02-03    2019-02-03  2019-02-04  2019-02-05
    CSDJKH2KFJ3     2019-02-01    2019-02-04  2019-02-07  

База данных загружается в rServer через google-диск, который постоянно обновляется.

    u1 <- "https://docs.google.com/spreadsheets/d/e/"link""
    tc1 <- getURL(u1, ssl.verifypeer=FALSE)
    x <- read.csv(textConnection(tc1))

Если в первом обновлении shipment_id CSDJKH231BN было выбрано, а во втором обновлении с диска Google, мы получаем CSDJKH231BN до shipped_at.Как сохранить только shipment_id, которые являются до shipped_at, но я также хочу сохранить shipment_id, например CSDJKH2KFJ3, которые еще должны быть обработаны и еще не отправлены.

В основном просто для удаления дублирующихся записей, но этот кодне работает для меня.

    df <- df[!duplicated(df), ]

Любая помощь будет оценена.

1 Ответ

2 голосов
/ 08 июня 2019

Я думаю, вам просто нужно указать, что вы ищете дубликаты в shipment_id.Однако это сохранит только первую версию, в которой ничего не будет в столбце shipped_at.Поэтому вам может понадобиться отсортировать столбец по столбцам shipped_at и packed_at (в обратном порядке, чтобы нулевые значения были внизу).Это работает?

df <- df[order(df[,'shipped_at'],df[,'packed_at'], decreasing=TRUE),]
df <- df[!duplicated(df$shipment_id), ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...