簡體   English   中英

如何刪除R數據幀中事件的連續出現?

[英]How to delete consecutive occurrences of an event in a R dataframe?

我有一個R數據框,其中包含有關通用事件的日期信息:id; start_date; end_date。

有時, 同一事件可能在同一天(1)或相距一天(2)發生,例如:

(1)1001; 2016-05-07; 2016-05-11 1001; 2016-05-11; 2016-05-14

(2)1001; 2016-05-07; 2016-05-11 1001; 2016-05-12; 2016-05-14

在第一種情況下,事件“ 1001”結束並在同一天重新開始,而在第二種情況下,事件在2017-05-11結束並在第二天再次開始。 在這兩種情況下,我都想刪除該事件的第二次出現。 如果第二次出現距離為兩天或更長時間,則可以保留第二次出現。 我如何在R中做到這一點?

先感謝您。

我對數據看起來像的部分解決方案:

library(data.table)
dat <- data.table(id = c(1001,1001,1001,1001),
                  start_date = as.Date(c("2016-05-07", "2016-05-11", "2016-05-07", "2016-05-12")),
                  end_date = as.Date(c("2016-05-11", "2016-05-14", "2016-05-11", "2016-05-14")))

dat2 <- data.table(id = c(dat$id, NA),
                   start_date = c(dat$start_date, NA),
                   end_date = c(as.Date(NA), dat$end_date))

dat2[, dif := end_date - start_date]

然后,您可以刪除dif <= 0行,我想。

我使用了data.table包,但是您可以執行dat2$dif <- dat2$end_date - dat2$start_date

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM