Example data:
ladder = data.frame(x = 1:10)
df <- data.frame(
id = rep('a', 5),
x = 6:10
)
> df
id x
1 a 6
2 a 7
3 a 8
4 a 9
5 a 10
I want to extend df so that all groups have the full sequence of values from 1:10:
Attempt:
> df |> group_by(id) |> full_join(ladder, by = 'x')
# A tibble: 10 × 2
# Groups: id [2]
id x
<chr> <int>
1 a 6
2 a 7
3 a 8
4 a 9
5 a 10
6 NA 1
7 NA 2
8 NA 3
9 NA 4
10 NA 5
Close, but I want the a
to fill down where there were missing values, not NA. Desired outcome:
df
id x
1 a 1
2 a 2
3 a 3
4 a 4
5 a 5
6 a 6
7 a 7
8 a 8
9 a 9
10 a 10
How can I join in such a way so as to ensure that for each group, there is at least 1:10 of x and where expanding, populate with the grouping vars not NA?