创建具有定期增加的重复数量的时间序列数据
creating time series data with repeating amounts that increase in regular intervals
我处理的数据是 运行 在电气设备上进行的测试,观察间隔为 1 微秒或 1/1,000,000 秒。数据在测试开始时统计,但在每次观察发生时统计。我的老板要我为时间数据添加两列。第一个时间列需要有 POSIXct 数据到 1 毫秒或 1/1,000 sec.The 秒时间列将从 0:999 运行 来表示微秒。第一个时间列中的数据需要保留 POSIXct,因为我们使用的其他程序读取该格式的时间数据。我使用两个时间列的原因是因为 POSIXct 变得不准确,时间小于微秒。
我的问题是如何从说“2002-11-12 14:10:25.120 UTC”开始重复一千次然后增加 +.001 秒?任何更有效地做到这一点的想法也将受到欢迎。
我认为使用 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]))
我处理的数据是 运行 在电气设备上进行的测试,观察间隔为 1 微秒或 1/1,000,000 秒。数据在测试开始时统计,但在每次观察发生时统计。我的老板要我为时间数据添加两列。第一个时间列需要有 POSIXct 数据到 1 毫秒或 1/1,000 sec.The 秒时间列将从 0:999 运行 来表示微秒。第一个时间列中的数据需要保留 POSIXct,因为我们使用的其他程序读取该格式的时间数据。我使用两个时间列的原因是因为 POSIXct 变得不准确,时间小于微秒。
我的问题是如何从说“2002-11-12 14:10:25.120 UTC”开始重复一千次然后增加 +.001 秒?任何更有效地做到这一点的想法也将受到欢迎。
我认为使用 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]))