我有一组观察结果,这些观察结果在用户每次执行操作时都会记录下来。我只想过滤用户相隔六个月或更长时间的观察结果。
因此,如果用户对“ 2018-01-01”,“ 2018-03-01”和“ 2018-07-01”采取了此操作,我只希望仅保留“ 2018-01-01”和“ 2018” -07-01”。
同样,如果用户对“ 2018-01-01”,“ 2018-03-01”,“ 2018-07-01”和“ 2019-03-01”采取了措施,我只想保留“ 2018-01” -01“,” 2018-07-01“,” 2019-03-01“。
到目前为止,我已经编写了很长且不可行的代码。
# What I want to achieve
library(data.table)
dataIhave <- data.table(id = c(1, 1, 1, 1, 2, 2, 3, 4),
dates = c("2018-01-01",
"2018-03-01",
"2018-07-01",
"2019-01-01",
"2018-01-03",
"2018-07-02",
"2018-02-01",
"2018-02-01"))
dataIwant <- data.table(id = c(1, 1, 1, 2, 3, 4),
dates = c("2018-01-01",
"2018-07-01",
"2019-01-01",
"2018-01-01",
"2018-02-01",
"2018-02-01"))
Run Code Online (Sandbox Code Playgroud)