如何从无固定格式的日期字符串中提取年份(附R语言示例)
提取无固定格式日期中的年份
你的数据集里日期格式不固定,但能确定存在四位数字的年份,直接用正则匹配连续四位数字就能提取——因为月、日都是1-2位,不会干扰匹配结果。
示例数据集
V1 <- c("02/04/1999", "2003/02", "01/2023") df <- as.data.frame(V1)
方法1:Base R 实现
用regmatches配合正则表达式提取:
df$year <- regmatches(df$V1, regexpr("\\d{4}", df$V1))
方法2:stringr 包实现(更简洁)
如果习惯用tidyverse工具,用str_extract函数:
library(stringr) df$year <- str_extract(df$V1, "\\d{4}")
运行结果
处理后的数据框会新增year列,内容为:
[1] "1999" "2003" "2023"
正则表达式说明:\\d{4}表示匹配连续4个数字,刚好对应你数据里的四位年份,能完美适配所有格式的日期字符串。
内容的提问来源于stack exchange,提问作者angeliquelinde
相关产品推荐
相关产品推荐

