如何统一R语言数据框日期列的不规则日期格式?
解决方案
你的日期列存在多种异构格式,单一的as.Date格式参数无法覆盖所有场景,用支持多格式匹配的日期解析工具即可解决:
- 第一步:安装并加载lubridate工具包
# 未安装的话先执行 install.packages("lubridate") library(lubridate)
- 第二步:多格式匹配解析日期
# 指定所有可能存在的日期格式,自动匹配解析 df$Date <- parse_date_time(df$Date, orders = c("Ymd", "mdY", "Ydm"))
三个格式参数分别对应你示例里的三类日期格式:Ymd匹配年-月-日格式,mdY匹配月/日/年格式,Ydm匹配年-日-月的错位格式。
- 第三步:转换为你需要的
d-m-y格式输出
# 格式化为日-月-年的字符串格式 df$Date <- format(df$Date, "%d-%m-%Y")
注意:如果后续还遇到解析失败的NA值,可以先提取NA对应的原始Date字符串,补充对应的格式码到
orders参数列表中即可;如果是本身不符合日期规则的异常值(比如2月30日、月份和日期均超过12的无意义值),需要单独排查原始数据的录入错误。
内容的提问来源于stack exchange,提问作者Sayantan4796
相关产品推荐
相关产品推荐

