繁体   English   中英

R 累计时差

[英]R cumulative time difference

我想从一开始就计算累积时间差。 我编写了一个粗略的解决方案,我并不特别喜欢。 有人有更优雅可靠的解决方案,可用于 dplyr pipe 吗? 愿望结果应如 diffCum 列中所示。

require(dplyr)

d = data.frame(n = 1:3, t = lubridate::ymd_hms("2020-03-30 08:15:39","2020-03-30 10:15:39","2020-03-30 14:15:39")) %>%
  mutate(diffMin = difftime(t, lag(t,1), unit = "mins")) %>%
  mutate(diffMin = ifelse(is.na(diffMin), 0, diffMin)) %>% # error prone as it would capture other NAs 
  mutate(diffCum = cumsum(diffMin)) # does not work with difftime class

我不确定您所说的“捕获其他 NA”是什么意思,我也不确定这是否符合优雅的条件!

d <- 
  data.frame(n = 1:3, t = lubridate::ymd_hms("2020-03-30 08:15:39","2020-03-30 10:15:39","2020-03-30 14:15:39")) %>%
  mutate(
    diffMin = difftime(t, lag(t,1, default = t[1] ), unit = "mins") %>% 
      as.numeric() %>%
      cumsum()
    )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM