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

R语言中将日期字符串转换为年-月格式的实现方法

R语言8位字符串日期转年-月格式操作

初始测试数据

原始构造的测试数据框如下,date列存储无分隔符的8位字符串日期:

library(tibble)
df <- tribble(
  ~date, 
  '20201227', 
)

期望输出的新数据框结构为:

new_df <- tribble(
  ~date, 
  '2020-12', 
)

具体实现方法

  • 快速字符串截取实现
    8位无分隔日期的排布规则固定:前4位为年份,第5-6位为月份,无需加载复杂日期处理逻辑,直接截取拼接即可得到目标值:
    library(dplyr)
    new_df <- df %>%
      mutate(
        date = paste0(substr(date, 1, 4), "-", substr(date, 5, 6))
      )
    
    该方法运行速度最快,无额外计算开销,仅要求输入字符串的年、月位置符合固定规则。
  • 带合法性校验的日期解析实现
    如果需要识别无效日期值(比如不存在的13月、2月30日这类非法输入),可以先将字符串转换为标准日期对象,再按目标格式化输出:
    基础R实现:
    new_df <- df %>%
      mutate(
        date = format(as.Date(date, format = "%Y%m%d"), format = "%Y-%m")
      )
    
    lubridate包简化实现:
    library(lubridate)
    new_df <- df %>%
      mutate(date = format(ym(date), "%Y-%m"))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 04:54:05