![](/img/trans.png)
[英]How to flag after comparing values over all rows based on a pre-defined threshold in R?
[英]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_at
和packed_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.