使用dplyr的单位不一致

使用dplyr的单位不一致,r,dplyr,R,Dplyr,我不确定我是否做错了什么,但我注意到,如果我尝试使用dplyr汇总包含持续时间数据的数据,则返回的单位不一致/不正确。为什么要取错单位 library(lubridate) time1 <- as.POSIXct("2018-06-27 12:08 AM") time2 <- as.POSIXct("2018-02-15 16:33:58") a <- data.frame( time = time1 + 1:3600 * 60 ) b <- data.frame

我不确定我是否做错了什么,但我注意到,如果我尝试使用dplyr汇总包含持续时间数据的数据,则返回的单位不一致/不正确。为什么要取错单位

library(lubridate)
time1 <- as.POSIXct("2018-06-27 12:08 AM")
time2 <- as.POSIXct("2018-02-15 16:33:58")

a <- data.frame(
  time = time1 + 1:3600 * 60
)

b <- data.frame(
  time = time2 + 1:3600 * 3600
)

c <- bind_rows(a, b, .id = "group")

# Units are incorrect
c %>%
  group_by(group) %>%
  summarise(
    median(diff(time))
  )

# They should look more like this
aggregate(time ~ group, data = c, FUN = function(x) median(diff(x)))
aggregate(time ~ group, data = c, FUN = function(x) units(median(diff(x))))
一个选项是使用difftime并指定单位

library(dplyr)
c %>%
   group_by(group) %>%
    summarise(
    Median = median(difftime(time, lag(time, default = first(time)), 
        unit = "min")))
# A tibble: 2 x 2
#  group Median 
#  <chr> <drtn> 
#1 1      1 mins
#2 2     60 mins