0

我的问题由两部分组成:首先,我想使用类似于下面的数据框执行最后一次观察(或完整)。因此,应创建缺失的年/月,随后应结转 X1 和 X2 的值。

set.seed(1)
df <- data.frame(year = sort(rep(c(2018,2019),4)),
                 month = c(1,2,5,8,1,2,3,6),
                 X1 = sort(sample(1:100,8)),
                 X2 = sort(sample(1:100,8)))

所需的输出应该是:

   year month X1 X2
1  2018     1 20  7
2  2018     2 27 18
3  2018     3 27 18
4  2018     4 27 18
5  2018     5 37 21
6  2018     6 37 21
7  2018     7 37 21
8  2018     8 57 37
9  2018     9 57 37
10 2018    10 57 37
11 2018    11 57 37
12 2018    12 57 37
13 2019     1 62 47
14 2019     2 86 63
15 2019     3 89 66
16 2019     4 89 66
17 2019     5 89 66
18 2019     6 97 73
19 2019     7 97 73
20 2019     8 97 73
21 2019     9 97 73
22 2019    10 97 73
23 2019    11 97 73
24 2019    12 97 73

此外,我还有一些我想分组的变量。因此,如果我有一个名为“组”的变量,由值 1 和 2 组成,我希望对两个组分别执行上述 LOCF。

4

1 回答 1

0

种子为我返回不同的数据,但我认为你想要做的是结合completefill

library(tidyr)
df %>% complete(year, month = 1:12) %>% fill(X1, X2)
于 2020-01-06T09:28:05.510 回答