【发布时间】:2023-04-09 22:39:01
【问题描述】:
我有一个数据框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")
【问题讨论】:
-
您能否在您的
dput中加入timestamp列? -
是的,我已经这样做了——编辑
-
后续元素是否使用相同的前/后?
-
@akrun 是一样的
-
既然你提到'基于时间戳':数据集是否应该在确定下一个/上一个元素之前排序。因为如果是这种情况,我会得到不同的结果
标签: r dplyr data.table zoo