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

R语言:如何从字符串不同位置提取日期?dplyr处理求助

解决方案

要解决这个问题,我们可以利用正则表达式匹配标准日期格式(YYYY-MM-DD),结合dplyr和stringr包的str_extract()函数,不管日期在字符串的开头还是中间,都能精准提取。

步骤说明

  1. 加载数据处理和字符串操作所需的包
  2. 用正则表达式匹配并提取目标日期
  3. (可选)将提取的字符串转换为日期类型,方便后续时间相关操作

完整代码示例

# 加载依赖包
library(dplyr)
library(stringr)

# 处理数据生成Date列
df <- df %>%
  mutate(
    # 提取YYYY-MM-DD格式的日期字符串
    Date = str_extract(Filename, "\\d{4}-\\d{2}-\\d{2}"),
    # 可选:将字符串转为日期类型(如需时间运算可保留)
    Date = as.Date(Date)
  )

代码解释

  • str_extract(Filename, "\\d{4}-\\d{2}-\\d{2}"):正则表达式\\d{4}-\\d{2}-\\d{2}会匹配任意位置的「四位数字(年份)+ 横杠 + 两位数字(月份)+ 横杠 + 两位数字(日期)」格式,完美适配你的日期样式。
  • as.Date(Date):将提取的字符串转换为R的标准日期类型,后续可直接进行排序、筛选等时间相关操作,若仅需字符串格式可省略此步。

验证结果

运行代码后,数据会生成符合预期的Date列:

RowFilenameDate
12007-11-05 KJ 2 JUHK2007-11-05
22008-09-24 KM 2 JUHK2008-09-24
3hki083892 2008-09-24 KM 2 JUHK2008-09-24
4hki083892 2008-09-24 KM 2 JUHK2008-09-24
52007-11-05 KJ 2 JUHK2007-11-05
62008-09-24 KM 2 JUHK2008-09-24

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:46:28