у меня есть датафрейм test
> test
foo bar baz timestamp
1 1 <NA> a 1552157998
2 1 <NA> <NA> 1552161596
3 1 stop <NA> 1552165194
4 1 <NA> b 1552168795
5 1 <NA> a 1552170839
6 1 <NA> <NA> 1552157998
7 1 stop <NA> 1552161596
8 1 <NA> a 1552165194
9 1 <NA> b 1552168795
10 1 <NA> <NA> 1552170839
Моя цель - найти для каждого экземпляра stop
ближайшее значение, отличное от NA, в каждом направлении (на основе timestamp
), что привело бы к созданию таблицы, подобной этой:
> output
rownum pre post
1 3 a b
2 7 a a
Есть ли известный способ сделать это с zoo
и na.locf()
?
Будем благодарны за любые предложения
dput(test)
structure(list(foo = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), bar = c(NA,
NA, "stop", NA, NA, NA, "stop", NA, NA, NA), baz = c("a", NA,
NA, "b", "a", NA, NA, "a", "b", NA), timestamp = c(1552157998.427,
1552161596.004, 1552165194.255, 1552168794.918, 1552170839.363,
1552157998.427, 1552161596.004, 1552165194.255, 1552168794.918,
1552170839.363)), row.names = c(NA, -10L), class = "data.frame")