(Я пытался задать этот вопрос ранее сегодня, но позже понял, что я слишком упростил вопрос; полученные ответы были правильными, но я не мог их использовать из-за чрезмерного упрощения задачи в исходном вопросе Вот моя вторая попытка ...)
У меня есть кадр данных в R, который выглядит следующим образом:
"Timestamp", "Source", "Target", "Length", "Content"
0.1 , P1 , P2 , 5 , "ABCDE"
0.2 , P1 , P2 , 3 , "HIJ"
0.4 , P1 , P2 , 4 , "PQRS"
0.5 , P2 , P1 , 2 , "ZY"
0.9 , P2 , P1 , 4 , "SRQP"
1.1 , P1 , P2 , 1 , "B"
1.6 , P1 , P2 , 3 , "DEF"
2.0 , P2 , P1 , 3 , "IJK"
...
и я хочу преобразовать это в:
"StartTime", "EndTime", "Duration", "Source", "Target", "Length", "Content"
0.1 , 0.4 , 0.3 , P1 , P2 , 12 , "ABCDEHIJPQRS"
0.5 , 0.9 , 0.4 , P2 , P1 , 6 , "ZYSRQP"
1.1 , 1.6 , 0.5 , P1 , P2 , 4 , "BDEF"
...
Пытаясь перевести это на английский язык, я хочу сгруппировать последовательные записи с одинаковыми «Источником» и «Целью» вместе, а затем распечатать одну запись для каждой группы, показывая StartTime, EndTime & Duration (= EndTime-StartTime) эта группа, а также сумма длин для этой группы и объединение содержимого (которые все будут строками) в этой группе.
Значения TimeOffset всегда будут увеличиваться во всем фрейме данных.
Я посмотрел на melt / recast и почувствовал, что его можно использовать для решения проблемы, но не смог разобраться с документацией. Я подозреваю, что это возможно сделать в R, но я действительно не знаю, с чего начать. В крайнем случае я мог бы экспортировать фрейм данных и сделать это, например. Python, но я бы предпочел остаться в R, если это возможно.
Заранее благодарим за любую помощь, которую вы можете оказать