如何随机生成在另一个日期和时间之后发生的日期和时间

时间:2019-08-23 20:06:39

标签: r simulation

我想生成一个随机的POSIX日期和时间,该日期和时间在另一个随机生成的日期和时间之后以创建一个模拟数据集,但是我一直在努力使其正确。

到目前为止,我已经学会了几种不这样做的方法。例如,我尝试使用第一个日期的日期范围内的序列样本,然后尝试将第一个日期作为第二个生成日期的开始日期范围。但是,一个序列只能有一个长度,所以我不能使它用于多个生成的值。

x <- sample(seq(as.POSIXct('2010-01-01'), as.POSIXct('2019-01-01'), by="sec"), 1)
y <- sample(seq(as.POSIXct(x),            as.POSIXct('2017-01-01'), by="sec"), 1)

1 个答案:

答案 0 :(得分:0)

假设我们正在寻找最多两个随机日期时间,其中每个随机日期时间在给定日期时间间隔内均匀分布:

set.seed(123)

n <- 5  # no of random datetimes needed
minDate <- as.POSIXct("2000-01-01")
maxDate <- as.POSIXct("2000-12-31")

epoch <- "1970-01-01"
as.POSIXct(pmax(runif(n, minDate, maxDate), runif(n, minDate, maxDate)), origin = epoch)
## [1] "2000-04-15 00:10:44 EDT" "2000-10-14 18:33:10 EDT"
## [3] "2000-11-21 17:35:26 EST" "2000-11-18 07:13:56 EST"
## [5] "2000-12-09 06:29:36 EST"
相关问题