R-如何按时间范围子集



我想从以下数据框架示例中创建一个子集。条件是选择那些行时间列属于时间的行,从特定ID的最小时间到下一个小时。

    id    time
    1   1468696537          
    1   1468696637          
    1   1482007490          
    2   1471902849          
    2   1471902850          
    2   1483361074          
    3   1474207754          
    3   1474207744          
    3   1471446673          
    3   1471446693  

,输出应该像这样:

   id    time
    1   1468696537          
    1   1468696637          
    2   1471902849          
    2   1471902850          
    3   1471446673          
    3   1471446693  

请帮助我如何做?

我们可以执行以下操作:

library(magrittr);
library(dplyr);
df %>%
    group_by(id) %>%
    filter(time <= min(time) + 3600)
#     id       time
#  <int>      <int>
#1     1 1468696537
#2     1 1468696637
#3     2 1471902849
#4     2 1471902850
#5     3 1471446673
#6     3 1471446693

说明:id的组条目,然后是filtermin(time) + 1 hour条目。


样本数据

df <- read.table(text =
    "   id    time
    1   1468696537
    1   1468696637
    1   1482007490
    2   1471902849
    2   1471902850
    2   1483361074
    3   1474207754
    3   1474207744
    3   1471446673
    3   1471446693  ", header = T)

最新更新