我有一个以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)
}
当我将其称为变量时,我会得到一个约会时间,例如&#34; 2015-10-08 15:23:40&#34;这正是我想要的行为。
rndday = rndTime(1)
然而,当我将它应用于数据帧时,我得到一个num作为输出。我有一个简单的框架midsOver,它有两个字段,ID(因子)和recnum(char)
midsOver$T0 <- sapply(midsOver$recnum, FUN = function(x) rndTime(1), simplify = F)
我的输出不是POSIX
日期和时间格式,而是查看表格时的1439396281.05214
等数字。但是,查看全局环境中的数据框,T0是1的列表,它正确显示POSIX
格式。
我需要在数据框中看到数据格式。
谢谢
答案 0 :(得分:0)
sapply函数将POSIX类对象转换回数字。要将数字转换回时间对象,请使用:
as.POSIXlt(x, tz = "", origin="1970-01-01")
as.POSIXct(x, tz = "", origin="1970-01-01")