我有一组变量,其中包含有关人员是否有有史以来有某些健康状况的数据。例如,“你有过心脏病发作吗?”有条件地继续前进和后退
如果他们在观察2时说“是”,那么在观察3和4时答案仍然是。但是,在观察1时不一定是。心脏病发作可能发生在观察1和2之间。
如果他们说“不”,在观察2,那么答案是否定的意见1.但是,它不一定没有在观察3或4
这里是一个重复的例子:
df <- tibble(
id = rep(1:3, each = 4),
obs = rep(1:4, times = 3),
mi_ever = c(NA, 0, 1, NA, NA, 0, NA, NA, NA, 1, NA, NA)
)
df
id obs mi_ever
1 1 1 NA
2 1 2 0
3 1 3 1
4 1 4 NA
5 2 1 NA
6 2 2 0
7 2 3 NA
8 2 4 NA
9 3 1 NA
10 3 2 1
11 3 3 NA
12 3 4 NA
将我的0(否)向后移动或使用zoo :: na.locf携带我的1(是)前进。但是,我不知道如何进行0的向后的和。理想情况下,我想下面的结果:
id obs mi_ever mi_ever_2
1 1 1 NA 0
2 1 2 0 0
3 1 3 1 1
4 1 4 NA 1
5 2 1 NA 0
6 2 2 0 0
7 2 3 NA NA
8 2 4 NA NA
9 3 1 NA NA
10 3 2 1 1
11 3 3 NA 1
12 3 4 NA 1
我已经签出以下职位,但没有人可以覆盖我问这里到底是什么。
Carry last Factor observation forward and backward in group of rows in R
Forward and backward fill data frame in R
making a "dropdown" function in R
任何帮助表示赞赏。