处理时间差R之间的差异

时间:2020-11-06 05:37:06

标签: r time format

我有一个df,其中我使用唯一ID减去两个日期的时间差。我确实得到了正确的输出,但是,我的时间差输出存在一致性问题。例如,在第2行,计算得出的差1.500,即90分钟或1小时30分钟。在第8行,计算得出的差异为20分钟,即20分钟。

我试图将此列转换为标准时间格式,但是我不成功。如果我尝试将列隐瞒几分钟,那么以分钟为单位的时间将人为地增加,而以小时为单位的时间则是正确的。任何人都可以提供的任何反馈,允许我有办法将此列转换为一致的格式(最好是分钟),将非常有帮助。

library(data.table)
library(dplyr)
library(lubridate)
library(anytime)

df = vroom::vroom(file = "datasample.csv")

df$Time=anytime(df$Time)

df=df %>% 
  group_by(x4) %>%
  mutate(difference = ifelse(Time == max(Time), max(Time) - min(Time), NA))


##Attempting to convert column to standard format
# diffs.hours <- floor(as.numeric(df$difference))
# diffs.minutes <- (as.numeric(df$difference)%%1 * 60)
 

#60  * as.numeric(times(df$difference))



Displaying Sample DF

1 个答案:

答案 0 :(得分:1)

您可以使用difftime减去时间来控制单位。

library(dplyr)

df <- df %>% 
        group_by(x4) %>%
        mutate(difference = ifelse(Time == max(Time), 
                             difftime(max(Time), min(Time), units = 'mins'), NA))