#r
#r
Вопрос:
Я пытаюсь обратить 04/03/2019 07:22:14 -> 2019-04-03 07:22:14 с упаковкой лубридата. Мой подход работает хорошо, но он очень медленный:
library(dplyr)
library(lubridate)
df <- data.frame(DateTimeStamp=replicate(9e5,"04/03/2019 07:22:14"),
stringsAsFactors = F) %>%
mutate(DateTimeStamp_Changed=as.POSIXct(unlist(lapply(DateTimeStamp,
function(item) {
return(as.character(parse_date_time(paste0(
as.Date(unlist(strsplit(item," "))[1], "%m/%d/%Y"),
unlist(strsplit(item," "))[2]
), orders="ymd HMS")))
}))))
Есть ли какой-нибудь способ ускорить это? Спасибо за любой ваш намек.
Ответ №1:
Вы можете использовать функцию ymd_hms()
из библиотеки lubridate
library(lubridate)
library(dplyr)
"04/03/2019 07:22:14" %>%
fast_strptime(format = '%d/%m/%Y %H:%M:%S') %>%
ymd_hms()
# [1] "2019-03-04 07:22:14 UTC"
Комментарии:
1. Большое спасибо! Это намного быстрее.