R语言月/日/年格式字符串日期转换出现大量NA如何解决
问题核心原因
你用到的日期解析格式与实际字符串结构不匹配,才会出现大面积转换失败的情况。
你数据中date_mm_dd_yy列的字符串是月/日/四位年的结构,但你之前使用的dmy()函数、format = "%d/%m/%y"参数都是按照「日/月/两位年」的逻辑解析:
- 当字符串中间的日期值超过12时,无法被识别为合法月份,就会返回NA
- 小写
%y只能识别两位年份,无法匹配你数据中的四位年份,也会导致解析失败
正确转换方案
方法1:base R原生方法
as.Date(Yes$date_mm_dd_yy, format = "%m/%d/%Y")
%m对应字符串第一部分的月份%d对应字符串第二部分的日期- 大写
%Y对应四位年份
方法2:lubridate包方法(无需手动指定格式,容错率更高)
# 未安装包先运行 install.packages("lubridate") library(lubridate) mdy(Yes$date_mm_dd_yy)
mdy()会自动识别「月/日/年」结构的日期字符串,不需要手动写格式参数,更不容易出错。
两种方法运行后都能正确转换所有10个日期,不会产生NA值。
内容的提问来源于stack exchange,提问作者user35131
相关产品推荐
相关产品推荐

