library( dplyr)
# create demo data
df <- data.frame (
id = c( rep( "A" , 3 ) , rep( "B" , 5 ) ) ,
datetime = c( as.POSIXct ( "2012/10/11 20:00" ) ,
as.POSIXct ( "2012/10/11 23:00" ) ,
as.POSIXct ( "2012/10/12 03:00" ) ,
as.POSIXct ( "2012/12/11 05:00" ) ,
as.POSIXct ( "2012/12/11 11:05" ) ,
as.POSIXct ( "2012/12/11 13:00" ) ,
as.POSIXct ( "2012/12/11 18:00" ) ,
as.POSIXct ( "2012/12/11 20:00" )
) ,
expdata = 1 : 8
)
col_names <- colnames( df)
# filter
df_filtered <- df %>%
group_by( id) %>%
arrange( datetime) %>%
mutate( timediff = as.numeric ( datetime- lag( datetime) , units = 'hours' ) ,
condition_meet = ifelse( is.na ( timediff) | timediff > 6 , 1 , 0 ) ,
condition_meet_id = cumsum( condition_meet)
) %>%
group_by( id, condition_meet_id) %>%
filter( row_number( ) == max( row_number( ) ) ) %>%
ungroup( ) %>%
select_at( col_names)
bGlicmFyeShkcGx5cikKCiMgY3JlYXRlIGRlbW8gZGF0YQpkZiA8LSBkYXRhLmZyYW1lKAogIGlkID0gYyhyZXAoIkEiLCAzKSwgcmVwKCJCIiwgNSkpLAogIGRhdGV0aW1lID0gYyhhcy5QT1NJWGN0KCIyMDEyLzEwLzExICAyMDowMCIpLAogICAgICAgICAgICAgICBhcy5QT1NJWGN0KCIyMDEyLzEwLzExICAyMzowMCIpLAogICAgICAgICAgICAgICBhcy5QT1NJWGN0KCIyMDEyLzEwLzEyICAwMzowMCIpLAogICAgICAgICAgICAgICBhcy5QT1NJWGN0KCIyMDEyLzEyLzExICAwNTowMCIpLAogICAgICAgICAgICAgICBhcy5QT1NJWGN0KCIyMDEyLzEyLzExICAxMTowNSIpLAogICAgICAgICAgICAgICBhcy5QT1NJWGN0KCIyMDEyLzEyLzExICAxMzowMCIpLAogICAgICAgICAgICAgICBhcy5QT1NJWGN0KCIyMDEyLzEyLzExICAxODowMCIpLAogICAgICAgICAgICAgICBhcy5QT1NJWGN0KCIyMDEyLzEyLzExICAyMDowMCIpCiAgKSwKICBleHBkYXRhID0gMTo4CikKCmNvbF9uYW1lcyA8LSBjb2xuYW1lcyhkZikKCiMgZmlsdGVyCmRmX2ZpbHRlcmVkIDwtIGRmICU+JQogIGdyb3VwX2J5KGlkKSAlPiUKICBhcnJhbmdlKGRhdGV0aW1lKSAlPiUKICBtdXRhdGUodGltZWRpZmYgPSBhcy5udW1lcmljKGRhdGV0aW1lLWxhZyhkYXRldGltZSksIHVuaXRzID0gJ2hvdXJzJyksCiAgICAgICAgIGNvbmRpdGlvbl9tZWV0ID0gaWZlbHNlKGlzLm5hKHRpbWVkaWZmKSB8IHRpbWVkaWZmID4gNiwgMSwgMCksCiAgICAgICAgIGNvbmRpdGlvbl9tZWV0X2lkID0gY3Vtc3VtKGNvbmRpdGlvbl9tZWV0KQogICkgJT4lCiAgZ3JvdXBfYnkoaWQsIGNvbmRpdGlvbl9tZWV0X2lkKSAlPiUKICBmaWx0ZXIocm93X251bWJlcigpID09IG1heChyb3dfbnVtYmVyKCkpKSAlPiUKICB1bmdyb3VwKCkgJT4lCiAgc2VsZWN0X2F0KGNvbF9uYW1lcyk=