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

在R中如何将包含额外信息的列转换为日期格式并提取时间字段

解决方案

你可以直接通过正则表达式一次性提取所需的三个字段,也可以通过R内置的时间解析函数处理,后者适配后续绘图需求的效率更高,更适合200万行级别的数据处理。

方法1:基于正则的字段提取

沿用你现有的正则处理逻辑,补充两行代码即可拿到Month和Time字段:

# 你已有的提取Day字段的代码
df$Day <- sub("([A-Za-z]+).*", "\\1", df$created_at)
# 提取月份(第一个单词后的第二个英文字符段)
df$Month <- sub("^[A-Za-z]+ ([A-Za-z]+).*", "\\1", df$created_at)
# 提取时分秒字段
df$Time <- sub(".*(\\d{2}:\\d{2}:\\d{2}).*", "\\1", df$created_at)

处理后你不需要保留临时的delete字段,直接得到你需要的三列输出。

方法2:时间对象解析(更推荐)

直接把created_at解析为R的标准时间对象,后续做时间序列绘图不需要再做格式转换,处理百万行数据的效率也比多次正则替换更高:

# 解析为标准POSIXct时间对象,指定对应格式和时区
df$datetime <- as.POSIXct(df$created_at, format = "%a %b %d %H:%M:%S PDT %Y", tz = "America/Los_Angeles")
# 从时间对象提取所需字段
df$Day <- strftime(df$datetime, "%a")
df$Month <- strftime(df$datetime, "%b")
df$Time <- strftime(df$datetime, "%H:%M:%S")

如果后续需要按日期统计、做时间轴绘图,直接用datetime列即可,不需要额外做格式转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:24:04