У меня возникла проблема при работе с объектами POSIXct. При использовании функций, которые возвращают объекты POSIXct с помощью sapply(), sapply() автоматически преобразует их в числовые.
lapply(), похоже, поддерживает класс POSIXct, но когда я удаляю список(), я снова его теряю.
Есть ли способ воспользоваться функцией apply() при использовании POSIXct? У меня есть проект на работе с большим количеством информации о дате и времени, и я расстраиваюсь. Большое спасибо!
# 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()
do.call("c",myListOfPOSIXct)
. - person joran   schedule 22.03.2019apply
преобразование вmatrix
. Передача объектаPOSIXct
вmatrix
илиas.matrix
имеет тот же эффект. - person divibisan   schedule 22.03.2019unlist
наdo.call(c, .)
дает желаемый результат - person divibisan   schedule 22.03.2019as.POSIXct(origin = ...)
this в конец lapply или sapply:%>% as.POSIXct(origin = "1970-01-01 00:00 AM")
- person shwan   schedule 22.03.2019class(x) <- c("POSIXct", "POSIXt")
. Непонятно, как здесь будет выглядеть реальный пример функции. Многие операции с датой и временем векторизуемы, какSys.time() + 1
(все еще POSIXct) - person Frank   schedule 22.03.2019unlist
не сохраняет класс, но только, если ввод является списком. Это не относится ни кsapply
, ни кPOSIXct
. Более того, поскольку это явно абсолютное базовое поведение языка в сочетании с S3, я озадачен тем, что не сталкивался с этим раньше. Дубликат не объясняет и не решает этот общий случай. - person Konrad Rudolph   schedule 22.03.2019