2017-05-07 4 views
0

Ich habe Transaktionsdaten von mehreren Kunden, so dass jeder Datenpunkt die Time enthält, bei der die Transaktion aufgetreten ist.Flexible Zeitauswahl

Wenn ich nun einen neuen Datenpunkt erhalte, möchte ich meine Daten für diesen speziellen Kunden mit einer flexiblen 'Stundenauswahl' unterteilen.

Hier ist ein Beispiel 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 

Angenommen, meinen neuen Datenpunkt gehört zu Cust_id=1 und trat in 02:33:10. Nehmen Sie auch an, dass ich alle Transaktionen dieses Kunden, die im Bereich von + - 3 Stunden -im selben Tag, an dem sie stattfanden, durchgeführt haben. In meinem Beispiel sollte ich die ersten zwei Zeilen unterteilen.

Wie kann ich es tun? Hier

Antwort

2

ist ein Weg, über Basis 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