求助:将整数格式(如19990101)的列转换为日期格式
整数格式日期转日期类型的修正方案
错误原因分析
你提供的代码存在3个关键问题:
- 语法错误:
format)date是错误写法,正确的日期转换函数为as.Date - 参数顺序颠倒:
as.Date要求先传入待转换的值,再指定格式参数 - 多余的类型转换:你需要的是日期类型,而非整数,
as.integer属于画蛇添足
正确代码实现
假设你的数据框名为 df,使用dplyr的正确转换代码如下:
library(dplyr) df <- df %>% mutate(Date = as.Date(as.character(Date), format = "%Y%m%d"))
代码说明
as.character(Date):先把整数类型的日期转为字符型,避免as.Date将整数误判为「1970-01-01以来的天数」as.Date(..., format = "%Y%m%d"):指定输入格式为8位的「年-月-日」数字,确保函数正确解析为标准日期类型
转换后,原整数19990101会被解析为Date类型的1999-01-01。
内容的提问来源于stack exchange,提问作者Henry Oufh
相关产品推荐
相关产品推荐

