I have a data frame in R that looks like this:
> TimeOffset, Source, Length
> 0 1 1500
> 0.1 1 1000
> 0.2 1 50
> 0.4 2 25
> 0.6 2 3
> 1.1 1 1500
> 1.4 1 18
> 1.6 2 2500
> 1.9 2 18
> 2.1 1 37
> ...
and I want to convert it to
> TimeOffset, Source, Length
> 0.2 1 2550
> 0.6 2 28
> 1.4 1 1518
> 1.9 2 2518
> ...
Trying to put this into English, I want to group consecutive records with the same ‘Source’ together, then printing out a single record per group showing the highest time offset in that group, the source, and the sum of the lengths in that group.
The TimeOffset values will always increase.
I suspect this is possible in R, but I really don’t know where to start. In a pinch I could export the data frame out and do it in e.g. Python, but I’d prefer to stay within R if possible.
Thanks in advance for any assistance you can provide
First you need to create an
idvariable that specifies your groups without relying on the fact that they are consecutive. After that it is pretty straight forward.