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

如何在R语言中为连续年月日字符串添加‘/’分隔符

在R语言中为data.frame的日期字符串添加分隔符

问题场景

现有如下data.frame,其中date列是连续数字组成的年月日字符串,需要在年、月、日之间插入/分隔符:

df <- data.frame(date = c("20220807", "20191017", "20211001"))

原始输出:

date
1 20220807
2 20191017
3 20211001

预期输出:

date
1 2022/08/07
2 2019/10/17
3 2021/10/01

解决方案

方法1:使用Base R的正则表达式替换

利用gsub()函数通过正则分组匹配,直接替换字符串格式:

df$date <- gsub("(\\d{4})(\\d{2})(\\d{2})", "\\1/\\2/\\3", df$date)
  • 正则说明:(\\d{4})捕获前4位数字(年份),(\\d{2})分别捕获中间2位(月份)和最后2位(日期),替换时用\\1/\\2/\\3将三个分组用/连接。

方法2:使用lubridate包格式化日期

先将字符串转为日期类型,再重新格式化输出:

# 首次使用需安装包
install.packages("lubridate")
library(lubridate)

df$date <- format(ymd(df$date), "%Y/%m/%d")
  • ymd()函数可自动识别8位年月日字符串并转为Date对象,format()通过%Y/%m/%d指定输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:01:08