下面是一个虚构的可复制的四辆出租车上落次数的例子. 不幸的是,出租车1、2和3在时间的流逝中丢失了.幸运的是,其中两次(对于出租车1号和3号)可以推断至少在1秒后他们才会接到新客户(这些是非拼车出租车,非常防电晕):
(在实际使用 case 中,下面的DF是GROUP_BY和另一个DF的摘要的结果)
library(dplyr)
x <- seq(as.POSIXct('2020/01/01'), # Create sequence of dates
as.POSIXct('2030/01/01'),
by = "10 mins") %>%
head(20) %>%
sort()
taxi_nr <- c(1, 1, 1, 2, 2, 3, 3, 3, 3, 4)
drop_of <- x[c(TRUE, FALSE)]
pick_up <- x[c(FALSE, TRUE)]
drop_of[2] <- NA
drop_of[5] <- NA
drop_of[7] <- NA
df <- data.frame(taxi_nr,pick_up,drop_of) %>%
arrange(pick_up)
我希望填写出租车1号和3号的NA,我try 过以下几种方式:
df <- df %>%
fill(drop_of, .direction = "up")
然而,这采用下面的落差值而不是下面的拾取值,并且不考虑出租车nr.
我也想过:
df <- df %>%
filter(is.na(drop_of)) %>%
mutate(drop_of, ov[,+1])
这似乎遇到了出租车_nr 2 case 的问题,因为在该组中没有[,+1]-或者我认为这就是问题所在.我试图安全地添加(),可能是(),也可能是悄悄地添加(),但这无济于事:
df <- df %>%
filter(is.na(drop_of)) %>%
mutate(drop_of, purr::safely(ov[,+1]))
有谁有解决方案吗?
PS:一旦我得到了正确的填充栏,也需要减go 1秒,并使用正确的润滑油甲酸盐(d/m/y-h/m/s)
谢谢!