You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解析时间-日期格式(非日期-时间)?lubridate处理反向格式

解析反向顺序的日期时间列

先确认你的数据集:

df <- tribble(~activity, ~time_date, 
               "run", "15:06:17 03/08/2016", 
               "skip", "09:01:00 03/08/2016")

下面提供三种实用方法,把字符型的time_date列转成可正常使用的日期时间类型:

方法1:lubridate自定义格式解析

用lubridate的parse_date_time()直接指定格式模板,对应时分秒 月/日/年的格式,格式规则为%H:%M:%S %m/%d/%Y:

library(lubridate)

# 新增解析后的日期时间列
df$time_date_parsed <- parse_date_time(df$time_date, orders = "%H:%M:%S %m/%d/%Y")

# 验证类型,会输出标准的日期时间类型标识
class(df$time_date_parsed)

方法2:拆分后组合(lubridate + stringr)

先拆分时间和日期部分,分别解析后相加得到完整日期时间:

library(lubridate)
library(stringr)

# 提取日期部分转成日期类型,提取时间部分转成时间类型,二者相加
df$time_date_parsed <- mdy(str_extract(df$time_date, "\\d{2}/\\d{2}/\\d{4}")) + 
  hms(str_extract(df$time_date, "\\d{2}:\\d{2}:\\d{2}"))

方法3:base R原生函数处理

无需额外加载包,用strptime()指定格式后,转成更常用的POSIXct类型:

# 先转成POSIXlt类型,再转换为更通用的POSIXct类型
df$time_date_parsed <- as.POSIXct(strptime(df$time_date, format = "%H:%M:%S %m/%d/%Y"))

内容的提问来源于stack exchange,提问作者Mishalb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 19:55:12