【发布时间】:2019-08-09 11:14:00
【问题描述】:
我尝试在 R 中为我的数据生成时间戳,但我无法按顺序创建它们,其中每个 ID 将在 14 天内采用一组时间戳,我需要按升序创建它们。
我的数据看起来像:
ID Lat Long Traffic Time
1 -80.424 40.4242 54 1am
2 -80.114 40.4131 30 1am
3 -80.784 40.1142 12 1am
1 -80.424 40.4242 22 2am
2 -80.114 40.4131 31 2am
3 -80.784 40.1142 53 2am
我希望我的数据是这样的:
ID Lat Long Traffic Time_New
1 -80.424 40.4242 54 2018/01/01 01:00
2 -80.114 40.4131 30 2018/01/01 01:00
3 -80.784 40.1142 12 2018/01/01 01:00
1 -80.424 40.4242 22 2018/01/02 02:00
2 -80.114 40.4131 31 2018/01/02 02:00
3 -80.784 40.1142 53 2018/01/02 02:00
在 2 周的时间段内,我使用以下代码为每个 ID 设置了 24 小时 但是我得到了这个输出,但是时间戳的顺序不是我想要的,加上它从以前的值中添加了流量值,我想根据每个 ID 的流量平均值生成新时间戳的新值.
library(data.table)
Data<- setDT(Data)[, .SD[rep(1:.N, ID)]][,Time_New:= seq(as.POSIXct("2018-01-01 01:00"), as.POSIXct("2018-01-14 00:00"),by = "hour"),by = .(Lat, Long)][]
ID Lat Long Traffic Time_New Time
1 -80.424 40.4242 54 2018/01/01 01:00 1am
2 -80.114 40.4131 30 2018/01/01 01:00 1am
3 -80.784 40.1142 12 2018/01/01 01:00 1am
1 -80.424 40.4242 54 2018/01/02 02:00 2am
2 -80.114 40.4131 54 2018/01/02 03:00 2am
1 -80.424 40.4242 54 2018/01/01 02:00 2am
2 -80.114 40.4131 54 2018/01/01 03:00 2qm
3 -80.784 40.1142 30 2018/01/01 01:00 3am
3 -80.784 40.1142 30 2018/01/01 02:00 3am
3 -80.784 40.1142 30 2018/01/01 03:00 3am
如您所见,它按我想要的顺序列出了前 3 个 ID,然后开始重复 ID 1、2,对于 ID 3,它从 1-3 放入时间列表,并复制相同的流量值。
有人知道如何按升序为每个 Id 组生成时间戳吗?
我们将不胜感激。
【问题讨论】:
-
这些日期是如何确定的?
-
我需要生成 POSIXct 格式的时间戳序列。我只需要制作假数据并在上面测试我的模型
-
我知道
Time_New的时间部分来自Time列,但我不清楚3 次观察后日期如何变化?
标签: r time timestamp time-series