繁体   English   中英

使用预定义条件删除数据框中的特定行

[英]Removing particular rows in a dataframe with pre-defined conditions

我有一个带有列的数据框

    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  

该数据库正在通过Google驱动器上传到rServer,该驱动器正在不断更新。

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

如果在第一次更新中,shipment_id CSDJKH231BN最高达到picked_at,而在第二次更新中,从Google驱动器中,我们将CSDJKH231BN上升至shipped_at。 我如何只保留最高到shipped_at的shipment_id,但我也想保留像CSDJKH2KFJ3这样仍待处理且尚未装运的shipment_id。

基本上只是删除重复的条目,但是此代码对我不起作用。

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

任何帮助,将不胜感激。

我想,你只需要指定你正在寻找重复shipment_id 但是,这将只保留第一个版本,该版本的shipped_at列中没有任何shipped_at 因此,您可能需要按shipped_atpacked_at列对列进行排序(相反,因此,空值位于底部)。 这样行吗?

df <- df[order(df[,'shipped_at'],df[,'packed_at'], decreasing=TRUE),]
df <- df[!duplicated(df$shipment_id), ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM