(我今天早些时候试图问这个问题,但后来意识到我过度简化了问题;我收到的答案是正确的,但由于我对原始问题中的问题过度简化,我无法使用它们。这是我的第二次尝试...)
我在 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 中。
提前感谢您提供的任何帮助