Fills missing values in the selected columns using the next or previous entry. Can be done by group.
Supports tidyselect
fill(.df, ..., .direction = c("down", "up", "downup", "updown"), .by = NULL)
A data.frame or data.table
A selection of columns. tidyselect
compatible.
Direction in which to fill missing values. Currently "down" (the default), "up", "downup" (first down then up), or "updown" (first up and then down)
Columns to group by when filling should be done by group
df <- data.table(
a = c(1, NA, 3, 4, 5),
b = c(NA, 2, NA, NA, 5),
groups = c("a", "a", "a", "b", "b")
)
df %>%
fill(a, b)
#> # A tidytable: 5 × 3
#> a b groups
#> <dbl> <dbl> <chr>
#> 1 1 NA a
#> 2 1 2 a
#> 3 3 2 a
#> 4 4 2 b
#> 5 5 5 b
df %>%
fill(a, b, .by = groups)
#> # A tidytable: 5 × 3
#> a b groups
#> <dbl> <dbl> <chr>
#> 1 1 NA a
#> 2 1 2 a
#> 3 3 2 a
#> 4 4 NA b
#> 5 5 5 b
df %>%
fill(a, b, .direction = "downup", .by = groups)
#> # A tidytable: 5 × 3
#> a b groups
#> <dbl> <dbl> <chr>
#> 1 1 2 a
#> 2 1 2 a
#> 3 3 2 a
#> 4 4 5 b
#> 5 5 5 b