使用as.Date转换mdy格式日期时年份错误的技术问询
日期转换错误的解决方法
你的问题核心是日期格式符与实际日期格式不匹配:
- 你明确说明日期是
mdy格式(月/日/年,比如01/05/2008代表2008年1月5日),但你使用的%d/%m/%Y格式符对应的是dmy格式(日/月/年)。 - 格式符错位会导致
as.Date错误解析日期各部分,比如把月份当作日期、日期当作月份,若原日期的“日期”数值大于12,还会引发年份解析异常,你遇到的2020年左右的错误就是这种错位解析的结果。
正确的代码需要把格式符换成对应mdy格式的%m/%d/%Y:
summary_data$date <- as.Date(summary_data$date, "%m/%d/%Y")
如果你的日期中年份是两位(比如01/05/08代表2008年1月5日),则要把格式符里的%Y替换为%y:
summary_data$date <- as.Date(summary_data$date, "%m/%d/%y")
转换后可以用head(summary_data$date)查看前几行结果,确认年份、月份、日期是否与预期一致。
内容的提问来源于stack exchange,提问作者user20485082
相关产品推荐
相关产品推荐

