@mara and @tbradley
Thank you very much! I tried the following code and it works. I need to transfer the data from one group to the next group based on following conditions. Do you have any suggestions?
I made group for each five minutes where date_chunk is grouping variable. min.value represent lower threshold of each group and max.value represents upper threshold.
tt %>%
mutate(date_chunk = floor_date(Time.x - offset_for_floor, "5 mins") +
offset_for_floor)%>%
group_by(date_chunk)%>%
mutate( min.value = min(UNIX_Time.x),
max.value = min.value + 300,
T= case_when(
T2<=min.value | T1>=max.value ~ max.value - min.value,
T2<=min.value | T1<=max.value ~ T1 - min.value,
T2>=min.value | T1>=max.value ~ max.value - T2,
T2>=min.value | T1<=max.value ~ T1- T2),
T2>=max.value | T1>=max.value ~ 0,
)
UNIX_Time.x UTC_Time.x Link_1 TT T1 T2 date_chunk min.value max.value T
1492670249 4/20/2017 6:37 P2P3 120 1492670323 1492670323 4/20/2017 6:37 1492670249 1492670549 74.01926637
1492670251 4/20/2017 6:37 P2P3 12893 1492678204 1492678190 4/20/2017 6:37 1492670249 1492670549 300
1492670253 4/20/2017 6:37 P2P3 4668 1492673132 1492673127 4/20/2017 6:37 1492670249 1492670549 300
1492670255 4/20/2017 6:37 P2P3 129 1492670335 1492670334 4/20/2017 6:37 1492670249 1492670549 85.57071137
1492670258 4/20/2017 6:37 P2P3 1451 1492671153 1492671151 4/20/2017 6:37 1492670249 1492670549 300