【发布时间】:2016-06-02 13:09:19
【问题描述】:
我有一个以POSIX 格式创建随机日期时间的函数。
rndTime <- function(N, st="2015/01/01", et="2015/12/31"){
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 <- as.POSIXct(st + ev)
}
当我将其调用到变量中时,我会得到一个日期时间,例如“2015-10-08 15:23:40”,这正是我想要的行为。
rndday = rndTime(1)
但是,当我将其应用于数据框时,我会得到一个 num 作为输出。我有一个简单的框架 midsOver,它有两个字段,ID (factor) 和 recnum(char)
midsOver$T0 <- sapply(midsOver$recnum, FUN = function(x) rndTime(1), simplify = F)
我的输出不是POSIX日期和时间格式,而是查看表格时的1439396281.05214等数字。但是在全局环境 T0 中查看数据框是 1 的列表,它正确显示了 POSIX 格式。
我需要查看数据框中的数据格式。
谢谢
【问题讨论】:
-
有助于添加
midsOver的样本。目前尚不清楚您是要使用默认的开始日期和结束日期还是使用recnum作为开始日期。 -
我想在函数中使用默认的开始和结束日期。当我调用应用程序时,我使用 $recnum 只是为了通过指定框架来避免出错。
$<-.data.frame(*tmp*, "T0", value = list(terminal_id = 1431003992.84843, 中的错误:替换有 2 行,数据有 1 -
使用
midsOver$T0 <- replicate(nrow(midsOver), rndTime(1))