示例数据:
test <- structure(list(date1 = structure(c(1632745800, 1632745800), tzone = "UTC", class = c("POSIXct",
"POSIXt")), date2 = structure(c(1641468180, 1641468180), tzone = "UTC", class = c("POSIXct",
"POSIXt"))), row.names = c(NA, -2L), class = c("tbl_df", "tbl",
"data.frame"))
为什么Difftime的输出会因为输入是否被包装成as.character
而不同?例如:
library(tidyverse)
test <- structure(list(date1 = structure(c(1632745800, 1632745800),
tzone = "UTC", class = c("POSIXct", "POSIXt")),
date2 = structure(c(1641468180, 1641468180), tzone = "UTC", class = c("POSIXct", "POSIXt"))),
row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"))
test %>% mutate(date_diff = difftime(date2, date1, units = "days"),
date_diff2 = difftime(as.character(date2), as.character(date1), units = "days")) %>%
print.data.frame()
#> date1 date2 date_diff date_diff2
#> 1 2021-09-27 12:30:00 2022-01-06 11:23:00 100.9535 days 100.9951 days
#> 2 2021-09-27 12:30:00 2022-01-06 11:23:00 100.9535 days 100.9951 days
在这种情况下,它只相差0.04,但有什么原因吗?哪一个会被认为是正确的?谢谢!