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

如何从yyyymmdd格式日期提取年份?R语言parse_date_time代码失效求助

处理yyyymmdd格式日期提取年份的解决方案

方法一:直接提取前4位(高效,无需转日期)

如果你的日期列是字符型(如 "20220310"),直接截取前4个字符即可:

df <- df %>%
  mutate(across(contains("Date"), ~substr(., 1, 4)))

如果是数值型(如 20220310),先转字符再截取:

df <- df %>%
  mutate(across(contains("Date"), ~substr(as.character(.), 1, 4)))

方法二:转日期后提取年份(适合需后续日期操作的场景)

你的原代码问题在于没有直接提取年份,且parse_date_time对数值型日期处理容易出错。改用lubridate包的工具一步到位:

library(lubridate)
df <- df %>%
  mutate(across(contains("Date"), ~year(ymd(.))))

ymd()可以自动识别字符/数值型的yyyymmdd格式,year()直接提取年份,无需拆分多列再删除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:15:41