如何在R中将日期格式从01-Oct-21转换为01-10-2021
R语言实现日期格式转换方案
你需要先将字符串格式的日期解析为R的日期对象,再按照目标格式输出即可,以下是两种常用实现方式:
方法1:基础R实现(无需额外安装包)
- 核心逻辑:用
as.Date()指定原始格式解析日期,再用format()输出目标格式 - 格式符说明:
原始格式01-Oct-21对应参数:%d(两位数日期)、%b(英文缩写月份)、%y(两位数年份)
目标格式01-10-2021对应参数:%m(两位数数字月份)、%Y(四位数年份) - 代码示例:
# 示例日期向量,替换为你自己的日期列即可 date_col <- c("01-Oct-21", "15-Dec-19", "22-Jul-22") # 中文系统需先执行以下命令切换时间locale,否则无法识别英文月份缩写 Sys.setlocale("LC_TIME", "English") # 解析为日期对象 date_obj <- as.Date(date_col, format = "%d-%b-%y") # 格式化为目标字符串 result <- format(date_obj, "%d-%m-%Y") # 查看结果 print(result)
方法2:使用lubridate包(更简洁,对新手友好)
lubridate是R中专门处理时间日期的工具包,无需手动记忆复杂格式符即可自动识别常见日期结构。
- 代码示例:
# 首次使用先安装包 install.packages("lubridate") # 加载包 library(lubridate) date_col <- c("01-Oct-21", "15-Dec-19", "22-Jul-22") # 按日-月-年的顺序自动解析日期 date_obj <- dmy(date_col) # 格式化为目标字符串 result <- format(date_obj, "%d-%m-%Y")
内容的提问来源于stack exchange,提问作者The Rock_data
相关产品推荐
相关产品推荐

