润滑加快日期时间操作

时间:2019-04-04 14:59:38

标签: r

我正在尝试使用lubridate软件包转换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 个答案:

答案 0 :(得分:1)

您可以从库 lubridate

中使用功能ymd_hms()
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"