【问题标题】:Add random noise to POSIXct variable [duplicate]向 POSIXct 变量添加随机噪声 [重复]
【发布时间】:2020-11-01 01:23:13
【问题描述】:

我正在对泊松点过程进行建模,我的数据中的时间采用POSIXct 形式,并且仅精确到秒。因此,有些时候是相同的。我想为这些时间添加一些噪音,所以希望它们可以有所不同。 R 中是否有任何包或函数可以让我这样做?

【问题讨论】:

  • 如果你的向量被命名为x,试试看format(x, "%Y-%m-%d %H:%M:%OS3")是否都相等。如果是,您可以添加?runif。注意:O3 格式在秒后打印 3 个小数,这些小数已经存在,它们根本不打印。

标签: r datetime posixct noise


【解决方案1】:

正如 Rui 指出的,这主要是格式问题。我认为最简单的方法是在使用 POSIXct 时允许打印几分之一秒 - 你可以这样做:

 options(digits.secs = 3)

所以现在如果我有一个时间向量:

times <- as.POSIXct(c("2020-07-11 13:06:01", "2020-07-11 13:06:01"))
times
#> [1] "2020-07-11 13:06:01 GMT" "2020-07-11 13:06:01 GMT"

我可以很容易地使用 lubridate 包添加几分之一秒:

library(lubridate)

times + seconds(runif(2))
#> [1] "2020-07-11 13:06:01.494 GMT" "2020-07-11 13:06:01.470 GMT"

在您的情况下,您可能希望添加 seconds(runif(length(times), -0.5, 0.5)) 以将您的时间随机化到最接近的秒内。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 2018-12-09
    • 2018-01-24
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 2019-12-24
    相关资源
    最近更新 更多