数据是从CSV文件导入的,日期最初是字符。我已经分别对它们进行了变异,因为我想对它们做一些进一步的分析。
我能找到的关于这个主题的唯一另一个问题,答案很复杂,因为需要考虑到1970年之前的日期,但我的数据是过去几年的,所以这不是一个考虑因素。
EARLIEST_DATE <- c(06/07/2021, 15/11/2019, 01/10/2019, 24/09/2019, 10/11/2020, 21/09/2021, 21/07/2020, 18/10/2022, 05/10/2021, 22/10/2021)
LATEST_DATE <- c(28/09/2021, 20/12/2019, 31/03/2020, 18/09/2020, 15/06/2021, 28/06/2022, 04/09/2020, 28/02/2023, 02/11/2021, 08/07/2022)
library(dplyr)
df <- data.frame(EARLIEST_DATE, LATEST_DATE)
df %>%
mutate(EARLIEST_DATE = as.Date(EARLIEST_DATE,'%d/%m/%Y'),
LATEST_DATE = as.Date(LATEST_DATE,'%d/%m/%Y'))
df %>%
summarise(weeks = ceiling(as.numeric(difftime(EARLIEST_DATE, LATEST_DATE, units = "weeks"))))
我得到以下结果:
我不明白为什么它给出了如此错误的值。
它们都应该是正数,并且没有一个间隔超过一年,所以它甚至不像是以天为单位表示的差异。天花板子句是这样的,周的值至少为1。
我可以在Excel中很好地计算差异,但是文件太大了,每当我尝试做任何事情时都会崩溃,因此使用R。
1条答案
按热度按时间njthzxwz1#
尝试在计算之前将它们解析为字符串。使用lubridate的
dmy()
来解析日-月-年格式的字符串,我似乎得到了更合理的输出。创建于2023-04-12带有reprex v2.0.2