2017-05-07 60 views
0

我有多个客户的交易数据,每个数据点包含交易发生的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_id=102:33:10发生。此外,假设我想将发生在+ - 3小时范围内的此客户的所有交易进行子集化,而不管他们发生的那一天。在我的检查中,我应该将前两行分组。

我该怎么办?

回答

2

这里是经由基础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