创建具有以规则间隔增加的重复量的时间序列数据

时间:2017-10-23 19:45:52

标签: r datetime time posixct

我所处理的数据涉及在电气设备上运行的测试,观测值为1微秒或1 / 1,000,000秒。测试开始时但每次观察发生时的数据统计。我的老板要我添加两列时间数据。第一次列需要具有1毫秒或1 / 1,000秒的POSIXct数据。第二个时间列将从0:999开始表示微秒。第一个时间列中的数据需要保留POSIXct,因为我们使用的其他程序读取该格式的时间数据。我使用两个时间列的原因是因为POSIXct变得不准确,时间小于微秒。

我的问题是如何开始说“2002-11-12 14:10:25.120 UTC”重复一千次然后再增加+.001秒?任何更有效地做到这一点的想法也会受到欢迎。

1 个答案:

答案 0 :(得分:0)

我认为使用ceiling()将是最好的选择。您可以采用数字级数的上限(我使用dplyr的row_number())除以某个数字并逐步增加。

library(tidyverse)
df <- data.frame(date = rep(0, 100000)) %>%
    mutate(date = as.POSIXct(Sys.Date()))

df <- df %>%
    mutate(newnum = lubridate::milliseconds(ceiling(row_number() / 1000)),
           newdate = date + newnum)

用图表说明:

plot(lubridate::second(df$newdate[1:10000]))

enter image description here

相关问题