Skip to content

This is a method for the tidyr replace_na() generic. It is translated to data.table::fcoalesce().

Note that unlike tidyr::replace_na(), data.table::fcoalesce() cannot replace NULL values in lists.

Usage

# S3 method for dtplyr_step
replace_na(data, replace = list())

Arguments

data

A lazy_dt().

replace

If data is a data frame, replace takes a list of values, with one value for each column that has NA values to be replaced.

If data is a vector, replace takes a single value. This single value replaces all of the NA values in the vector.

Examples

library(tidyr)

# Replace NAs in a data frame
dt <- lazy_dt(tibble(x = c(1, 2, NA), y = c("a", NA, "b")))
dt %>% replace_na(list(x = 0, y = "unknown"))
#> Source: local data table [3 x 2]
#> Call:   copy(`_DT34`)[, `:=`(x = fcoalesce(x, 0), y = fcoalesce(y, "unknown"))]
#> 
#>       x y      
#>   <dbl> <chr>  
#> 1     1 a      
#> 2     2 unknown
#> 3     0 b      
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results

# Replace NAs using `dplyr::mutate()`
dt %>% dplyr::mutate(x = replace_na(x, 0))
#> Source: local data table [3 x 2]
#> Call:   copy(`_DT34`)[, `:=`(x = fcoalesce(x, 0))]
#> 
#>       x y    
#>   <dbl> <chr>
#> 1     1 a    
#> 2     2 NA   
#> 3     0 b    
#> 
#> # Use as.data.table()/as.data.frame()/as_tibble() to access results