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

R语言拆分含年月数据列的更简洁实现方法(可结合正则表达式)

R语言年月列拆分更简洁的实现方法

下面提供3种比原有写法更精简的实现方案,均可得到完全一致的输出结果:

方案1:优化separate参数,省略select步骤

separate函数支持用NA作为不需要保留的拆分列占位符,拆分后会自动丢弃这些列,无需额外调用select删除:

library(tidyverse)
df %>% 
  separate(month_year, c("month", NA, NA, "year"), sep = " ")

方案2:用extract函数正则匹配,稳定性更强

如果后续字符串格式出现空格数量变化的情况,用extract直接匹配目标字段的写法鲁棒性更高,直接通过正则指定要提取的月份、年份部分即可:

df %>%
  extract(
    col = month_year,
    into = c("month", "year"),
    regex = "^(\\w+) / \\w+ (\\d+)$"
  )

方案3:直接提取目标内容,无需拆分整列

逻辑最直观的写法,直接从原列中分别提取第一个单词作为月份、末尾的数字作为年份:

df %>%
  mutate(
    month = str_extract(month_year, "^\\w+"),
    year = str_extract(month_year, "\\d+$")
  ) %>%
  select(month, year)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:36:04