POSIXct日期对象被apply()转换

时间:2019-03-22 16:53:30

标签: r posixct

我在使用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()

1 个答案:

答案 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"