[Experimental]

vec_fill_missing() fills gaps of missing values with the previous or following non-missing value.

vec_fill_missing(
  x,
  direction = c("down", "up", "downup", "updown"),
  max_fill = NULL
)

Arguments

x

A vector

direction

Direction in which to fill missing values. Must be either "down", "up", "downup", or "updown".

max_fill

A single positive integer specifying the maximum number of sequential missing values that will be filled. If NULL, there is no limit.

Examples

x <- c(NA, NA, 1, NA, NA, NA, 3, NA, NA) # Filling down replaces missing values with the previous non-missing value vec_fill_missing(x, direction = "down")
#> [1] NA NA 1 1 1 1 3 3 3
# To also fill leading missing values, use `"downup"` vec_fill_missing(x, direction = "downup")
#> [1] 1 1 1 1 1 1 3 3 3
# Limit the number of sequential missing values to fill with `max_fill` vec_fill_missing(x, max_fill = 1)
#> [1] NA NA 1 1 NA NA 3 3 NA
# Data frames are filled rowwise. Rows are only considered missing # if all elements of that row are missing. y <- c(1, NA, 2, NA, NA, 3, 4, NA, 5) df <- data_frame(x = x, y = y) df
#> # A tibble: 9 x 2 #> x y #> <dbl> <dbl> #> 1 NA 1 #> 2 NA NA #> 3 1 2 #> 4 NA NA #> 5 NA NA #> 6 NA 3 #> 7 3 4 #> 8 NA NA #> 9 NA 5
vec_fill_missing(df)
#> # A tibble: 9 x 2 #> x y #> <dbl> <dbl> #> 1 NA 1 #> 2 NA 1 #> 3 1 2 #> 4 1 2 #> 5 1 2 #> 6 NA 3 #> 7 3 4 #> 8 3 4 #> 9 NA 5