R语言使用dput输出数据后日期格式异常的修复方法
问题结论
你给出的dput输出是完全正常的标准格式,不存在配置错误。
- R中
POSIXct类型的日期时间底层是以Unix时间戳(1970-01-01 00:00:00 UTC到对应时间的秒数)存储的,dput的作用是输出可完全复现的R对象结构,所以会同时展示底层存储的数值、变量类属性、时区属性,这是dput的设计特性,不是错误。 - 你给出的示例时间戳转换后均对应正常可读日期:
- 1629936000 对应 2021-08-26 UTC
- 1577836800 对应 2020-01-01 UTC
- 1580601600 对应 2020-02-02 UTC
验证方法
你可以直接运行以下代码还原数据,查看可读格式的日期:
# 直接用dput输出的结构还原数据 df_restored <- structure(list(Date = structure(c(1629936000, 1629936000, 1629936000, 1629936000, 1629936000, 1629936000), class = c("POSIXct", "POSIXt" ), tzone = "UTC"), Upd = structure(c(1577836800, 1577836800, 1577836800, 1577836800, 1580601600, 1580601600), class = c("POSIXct", "POSIXt"), tzone = "UTC"), `Value 1` = c(12, 12, 3, 4, 5, 6)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame")) # 打印查看正常日期格式 print(df_restored)
异常排查(如果实际读取的日期和Excel内不一致)
如果打印后发现日期和Excel原文件内容不匹配,可以在读取时手动指定列类型修正:
library(readxl) # 根据实际列顺序调整col_types参数,可选值有"date"、"numeric"、"text"等 df<-read_excel('C:/Desktop/example.xlsx', col_types = c("date", "date", "numeric"))
内容的提问来源于stack exchange,提问作者user13047398
相关产品推荐
相关产品推荐

