当多个条目存在同一时间戳时如何更新时间

how to update time when multiple entries present for same time stamp

我有如下数据:

datetime <- c('2018-01-01 08:00','2018-01-01 08:01:00','2018-01-01 08:02:00', '2018-01-01 08:02:00', '2018-01-01 08:03:00')
from <- c(1,0,1,0,1)
to <- c(0,1,0,1,0)
df <- data.frame(datetime, from, to)

df
             datetime from to
1    2018-01-01 08:00    1  0
2 2018-01-01 08:01:00    0  1
3 2018-01-01 08:02:00    1  0
4 2018-01-01 08:02:00    0  1
5 2018-01-01 08:03:00    1  0

有 2 个条目对应于'2018-01-01 08:02:00'。

对于这两个条目,我想分别将时间更新为'2018-01-01 08:02:00'和'2018-01-01 08:02:30'。

一个时间戳对应的条目可能不止两个。 因此 60 秒间隔将除以重复次数,并相应更新时间戳。

更新所有此类条目的时间的最佳方法是什么?

我可以计算每个时间实例的重复次数:

 sum(df$datetime == '2018-01-01 08:02:00')

但我不确定如何从那里继续。

我不确定,如果这是执行此操作的最有效方法,我认为这会起作用。

对于每个唯一的 datetime 条目,我们计算它的频率,然后生成一系列 freq 等距条目。

df$datetime[] <- unlist(sapply(unique(df$datetime), function(x) {
                 freq = sum(x==df$datetime)
                 as.character(seq(as.POSIXct(x), by = 60/freq, length.out = freq))
                 }))


df
#             datetime from to
#1 2018-01-01 08:00:00    1  0
#2 2018-01-01 08:01:00    0  1
#3 2018-01-01 08:02:00    1  0
#4 2018-01-01 08:02:30    0  1
#5 2018-01-01 08:03:00    1  0