小编iHa*_*ing的帖子

使用data.table根据特定日期条件过滤观察值

我有一组观察结果,这些观察结果在用户每次执行操作时都会记录下来。我只想过滤用户相隔六个月或更长时间的观察结果。

因此,如果用户对“ 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)

r dplyr data.table

3
推荐指数
1
解决办法
121
查看次数

标签 统计

data.table ×1

dplyr ×1

r ×1