这个问题在这里已有答案:
我遇到了使用POSIXct对象的问题。使用使用sapply()返回POSIXct对象的函数,sapply()似乎会自动将它们转换为数字。
lapply()似乎维护了POSIXct类,但是当我unlist()时,我再次失去它。
有没有办法在仍然使用POSIXct的同时利用apply()?我有一个项目在工作中有很多日期时间信息,我很沮丧。非常感谢!
# unwanted POSIXct conversion to numeric
as.POSIXct(Sys.time(), "GMT") %>% rep(5) %>% sapply(function(x) x)
# lapply seems to maintain POSIXct class, but if I unlist(), I lose POSIXct again
as.POSIXct(Sys.time(), "GMT") %>% rep(5) %>% lapply(function(x) x)
as.POSIXct(Sys.time(), "GMT") %>% rep(5) %>% lapply(function(x) x) %>% unlist()
我不确定这是最有效的方法,但作为一个快速修复,你可以先将它们转换为角色
as.POSIXct(sapply(rep(as.POSIXct(Sys.time(),“GMT”),5),function(x)as.character(x)))
## [1] "2019-03-22 19:24:37 CET" "2019-03-22 19:24:37 CET"
## [3] "2019-03-22 19:24:37 CET" "2019-03-22 19:24:37 CET"
## [5] "2019-03-22 19:24:37 CET"
这就留下了一个问题,为什么你首先需要一个sapply?
as.POSIXct(rep(Sys.time(),5))
##[1] "2019-03-22 19:29:40 CET" "2019-03-22 19:29:40 CET"
##[3] "2019-03-22 19:29:40 CET" "2019-03-22 19:29:40 CET"
##[5] "2019-03-22 19:29:40 CET"