R 灵活的时间选择

R 灵活的时间选择,r,time,R,Time,我有多个客户的交易数据,因此每个数据点都包含交易发生的时间 现在,当我获得新的数据点时,我希望通过灵活的“小时”选择为特定客户子集我的数据 下面是一个示例df: Cust_id Date Time 1 5/1/17 03:12:22 1 6/1/17 23:45:17 1 6/1/17 21:55:45 假设我的新数据点属于Cust\

我有多个客户的交易数据,因此每个数据点都包含交易发生的时间

现在,当我获得新的数据点时,我希望通过灵活的“小时”选择为特定客户子集我的数据

下面是一个示例
df

Cust_id    Date           Time 
1               5/1/17       03:12:22       
1               6/1/17       23:45:17
1               6/1/17       21:55:45
假设我的新数据点属于
Cust\u id=1
,发生在
02:33:10
中。还假设我想对该客户在+-3小时范围内发生的所有交易进行子集,而不管它们发生在哪一天。在我的例子中,我应该将前两行子集


我怎么做

这里有一种通过R基的方法

p1 <- '02:33:10'
d1$Time <- format(strptime(d1$Time, format="%H:%M:%S"), format = "%H:%M:%S")

i1 <- format(strptime(p1, format="%H:%M:%S")+3*60*60, format = "%H:%M:%S")
i2 <- format(strptime(p1, format="%H:%M:%S")-3*60*60, format = "%H:%M:%S")

d1[d1$Time >= i2 | d1$Time <= i1,]

#  Cust_id   Date     Time
#1       1 5/1/17 03:12:22
#2       1 6/1/17 23:45:17

p1这里有一种通过R基的方法

p1 <- '02:33:10'
d1$Time <- format(strptime(d1$Time, format="%H:%M:%S"), format = "%H:%M:%S")

i1 <- format(strptime(p1, format="%H:%M:%S")+3*60*60, format = "%H:%M:%S")
i2 <- format(strptime(p1, format="%H:%M:%S")-3*60*60, format = "%H:%M:%S")

d1[d1$Time >= i2 | d1$Time <= i1,]

#  Cust_id   Date     Time
#1       1 5/1/17 03:12:22
#2       1 6/1/17 23:45:17
p1