R语言中将S.10格式日期转换为2019/09/10格式的方法咨询
R 实现 S.XX 格式日期转 YYYY/MM/DD 格式方案
默认你的S.10格式规则为:首位字母为英文月份首字母,小数点后数字为当月日期,需求中年份固定为2019,可按以下两种方式实现:
方法1:基础R实现(无需额外安装包)
# 1. 构建月份首字母对应数字的映射表 month_map <- c( J = 1, F = 2, M = 3, A = 4, M = 5, J = 6, J = 7, A = 8, S = 9, O = 10, N = 11, D = 12 ) # 2. 示例原始日期 raw_date <- "S.10" # 3. 拆分原始字符串获取月份首字母和日期 month_char <- substr(raw_date, 1, 1) day_num <- substr(raw_date, 3, nchar(raw_date)) # 4. 拼接为目标格式,自动补全月份、日期前的0 target_date <- paste0("2019/", sprintf("%02d", month_map[month_char]), "/", sprintf("%02d", as.integer(day_num))) # 输出结果:2019/09/10 print(target_date)
如果需要批量处理多个日期,把raw_date替换为存储所有原始日期的向量即可直接运行。如果原始数据中1月/3月/5月、6月/7月有特殊区分标识,调整映射表对应规则即可。
方法2:使用lubridate包实现(更适合日期类后续操作)
# 未安装包先执行安装 # install.packages("lubridate") library(lubridate) raw_date <- "S.10" # 替换首字母为对应月份全称后解析日期,再格式化输出 parsed_date <- format( ymd(paste0("2019-", sub("\\.", "-", sub("S", "September", raw_date)))), "%Y/%m/%d" ) print(parsed_date)
内容的提问来源于stack exchange,提问作者Waikiki
相关产品推荐
相关产品推荐

