[英]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.