R 在指定时间之间生成示例datetime

R 在指定时间之间生成示例datetime,r,R,如何采样从08:00:00到17:00:00的指定时间之间的时间,现在下面的代码生成24小时之间的随机日期和时间 有没有办法在我的函数中指定时间范围 dtime <- function(N, st="2012-01-01 08:00:00", et="2012-01-02 19:00:00") { st <- as.POSIXct(as.Date(st)) et <- as.POSIXct(as.Date(et)) dt <- as.numeric(difft

如何采样从08:00:00到17:00:00的指定时间之间的时间,现在下面的代码生成24小时之间的随机日期和时间

有没有办法在我的函数中指定时间范围

dtime <- function(N, st="2012-01-01 08:00:00", et="2012-01-02 19:00:00") {
  st <- as.POSIXct(as.Date(st))
  et <- as.POSIXct(as.Date(et))
  dt <- as.numeric(difftime(et,st,unit="sec"))
  ev <- sort(runif(N, 0, dt))
  rt <- st + ev
}

a <- dtime(30)
dtime“st”和“et”只是表示从开始算起的秒数的整数。因此,您可以将这些数字传递给
sample
函数:

dtime <- function(N, st="2012-01-01 08:00:00", et="2012-01-02 19:00:00") {
  st <- as.POSIXct(st)  
  et <- as.POSIXct(et)
  ev <- sample(st:et, N)  #select from the range st to et
  as.POSIXct(ev, origin="1970-01-01")
}

dtime(30)

您好@DaveT仍然我得到的日期时间超过了8:00和19:00是的@DaveT我尝试了它仍然有一些输出
[19]“2012-01-01 16:13:20 IST”“2012-01-01 23:20:16 IST”“2012-01-01 19:25:38 IST”[22]“2012-01-01 08:25:31 IST”“2012-01-01 12:03:26 IST”“2012-01-01 23:53:59 IST”
@prog,您评论的时间在1/1到1/2的时间窗口内。再次检查函数中的默认时间。
[1] "2012-01-01 14:50:44 EST" "2012-01-01 04:17:56 EST" "2012-01-01 11:35:01 EST" "2012-01-01 11:15:01 EST"
[5] "2012-01-01 03:38:29 EST" "2012-01-01 08:27:55 EST" "2012-01-01 12:45:26 EST" "2011-12-31 19:51:47 EST"
[9] "2012-01-01 15:28:56 EST" "2012-01-01 02:54:52 EST" "2012-01-01 13:41:38 EST" ….