我在使用POSIXct对象时遇到问题。通过使用带有sapply()返回POSIXct对象的函数,sapply()似乎会自动将它们转换为数字。
lapply()似乎维护着POSIXct类,但是当我取消list()时,我又失去了它。
有没有办法在仍然使用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()
答案 0 :(得分:-1)
我不确定这是最有效的方法,但是作为快速解决方案,您可以先将其转换为字符
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"
剩下的问题是,为什么首先需要申请?
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"