R read_excel readxl 有时会错误地将数字转换为日期
Posted
技术标签:
【中文标题】R read_excel readxl 有时会错误地将数字转换为日期【英文标题】:R read_excel readxl sometimes incorrectly converts numbers to dates 【发布时间】:2018-04-13 07:22:11 【问题描述】:当我使用 read_excel 将数据从 Excel 导入 R 时,一些数值列会自动转换为日期。
# e.g.
5600 to 1915-05-01
有没有办法关闭这个功能?除了在 read_excel 中使用“col_types”参数。
【问题讨论】:
col_types 是伴侣 您对使用明确为您所追求的目的而设计的论点有何反感?我一定是错过了什么 问题是,你的数据中有什么让 read_excel 认为这是一个日期?如果只是数字,这可能不会发生 @MichaelChirico 我正在使用 for 循环上传多个文件(30 多个 excel),它们可以有不同的结构(例如列名、列数)。因此,一对一定义 col_types 是可能的,但效率不高。 @docendodiscimus 这是一个非常好的观点。我在发布这个问题之前检查了 Excel 上的数据,该列仅包含 1 到 5 位整数。 【参考方案1】:readxl
包与用于原始数据文件的readr
一样,有一个类型猜测器来确定如何读取 Excel 电子表格中的列。正如包小插曲中所述,猜测过程并不完美,尤其是与日期格式有关,因为它们存储为特殊类型的数字。
如包文档(以及 OP 上的 cmets)中所述,避免列类型猜测器的不准确猜测的方法是使用 read_excel()
上的 col_types
参数显式指定列类型。
【讨论】:
如果类型猜测失败,可能算法可以改进。我鼓励 OP 在 GitHub 上提出问题并尽可能分享他们的数据以上是关于R read_excel readxl 有时会错误地将数字转换为日期的主要内容,如果未能解决你的问题,请参考以下文章