【发布时间】:2019-08-06 21:48:04
【问题描述】:
对于国家/地区级别的事件列表,我们希望为特定国家/地区的连续几天创建一个唯一 ID(如果一个国家/地区连续两天或更长时间的事件 --> 创建唯一 ID),以便我最终可以将数据框简化为特定的事件序列,而不是事件日期。
我没有设法根据事件的顺序汇总数据。我相信这个响应是相似的 (Creating groups of consecutive days meeting a given criteria),但它是在 SQL 中。
数据格式如下:
country <- c("Angola","Angola","Angola","Angola","Angola", "Benin","Benin","Benin","Benin","Benin","Benin")
event_date <- as.Date(c("2017-06-16", "2017-06-17", "2017-06-18", "2017-08-22", "2017-08-23", "2019-04-18", "2019-04-19", "2019-04-20", "2018-03-15", "2018-03-16", "2016-03-17"))
mydata <- data.frame(country, event_date)
在输出中,我希望有一个新列,其 ID 对一个国家/地区的每个系列事件都是唯一的:
seq.ID <- c(1,1,1,2,2,3,3,3,4,4,4)
mydata2 <- data.frame(country, event_date, seq.ID)
所以最终,我可以将数据减少到国家和事件序列的级别:
mydata3 <- mydata2[!duplicated(mydata2$seq.ID),]
【问题讨论】: