【发布时间】:2022-08-16 02:58:37
【问题描述】:
以下示例数据,两组 1 和 2:
id <- c(1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2)
var <- c(NA, NA, 0, NA, NA, NA, NA, NA, 20, NA, NA)
df <- data.frame(id, var)
> df
id var
1 1 NA
2 1 NA
3 1 0
4 1 NA
5 1 NA
6 2 NA
7 2 NA
8 2 NA
9 2 20
10 2 NA
11 2 NA
如何使用变量“var”的+1和-1逐步按组向上和向下填充NA?创建一个新变量“sol”,结果应该是:
id var sol
1 1 NA -1
2 1 NA -2
3 1 0 0
4 1 NA 1
5 1 NA 2
6 2 NA 17
7 2 NA 18
8 2 NA 19
9 2 20 20
10 2 NA 21
11 2 NA 22
注意:变量 \"var\" 中的值可能会有所不同,它们并非对每个组都相同。
我很感激任何帮助。特别是使用 dplyr。
-
乍一看,这个问题是相似的。但是有一个重要的区别:在我的案例中要填充的列不仅包含零。这使得另一个问题中显示的解决方案不能直接转移。