如果 excel 中的日期列为空,R 在 read_excel() 期间将 Excel 日期列数据类型更改为逻辑

R changing Excel Date columns Datatype to Logical during read_excel() if Date column is empty in excel

所以我有 2 excels VIN1.xlsx 和 VIN2.xlsx 需要比较。

VIN1 excel 有一个 dale 列 OUTGATE_DT 至少填充了 1 行。

VIN2 excel 有一个日期列 OUTGATE_DT,所有行都为空。

当我使用 read_excel 导入 VIN1.xlsx excel 时,它创建了对象,当我检查 OUTGATE_DT 列时,它说它的数据类型为 POSIXct [1:4](我认为对于日期列是正确的。)

但是当我使用 read_excel 导入 VIN2.xlsx excel 时,它创建了对象,当我检查 OUTGATE_DT 列时,它说它的数据类型是合乎逻辑的[1:4](这样做是因为此列完全是空的)。

这就是我的 compare_df(vin1,vin2) 功能失败的原因 说明 -

Error in rbindlist(l, use.names, fill, idcol) : Class attribute on column 80 of item 2 does not match with column 80 of item 1.

我是 R 的新手,非常感谢您的帮助。 TIA

请查看截图以供参考。

您应该使用 read_excel() 如下 read_excel(, col_types = "text")

您的所有列都将被视为文本,因此您不会有任何问题需要比较。

或者,如果您想保留原始 df 中的列类型,您可以这样做:

library(dplyr)
library(readxl)

VIN2 <- read_excel(VIN2.xlsx) %>%
 mutate(OUTGATE_DT = as.Date(OUTGATE_DT))

那么使用 dplyr 中的 rbindbind_rows 应该没有问题。