gpt4 book ai didi

r - POSIXct 日期对象由 apply() 转换

转载 作者:行者123 更新时间:2023-12-04 11:23:50 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Returning a vector of class POSIXct with vapply

(1 个回答)


2年前关闭。




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

关于r - POSIXct 日期对象由 apply() 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55304394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com