我有一个数据集,其中时间戳从纪元开始以秒为单位:
id event time
2 722 opened 1356931342
1 723 opened 1356963741
4 721 referenced 1356988186
5 721 closed 1356988186
3 721 referenced 1356988206
但是,由于处理大量非常长的时间戳会导致我正在使用的算法出现严重的性能问题(最佳匹配距离),我想将其减少为对哪个事件先出现(或同时出现)的简单排序)。我的意思是数据集中最早的事件(行)应该是 1,然后是 2、3、4 等。如果两行的数字完全相同(自纪元以来的秒数),则需要给它们相同的数字新的简化格式的数字。因此,这需要输出以下内容:
id event time
2 722 opened 1
1 723 opened 2
4 721 referenced 3
5 721 closed 3
3 721 referenced 4
“时间”列本质上是一个数字向量(不是因素 - 这将不起作用,因为我正在尝试解决性能问题)。
我可以使用以下命令订购数据框:
df <- df[with(df, order(time)), ]
但是,如何用有序的单个数字替换数字(相同的数字代表相同的时间戳)?