na_replace: Replace NAs with explicit values

Description Usage Arguments Details Value See Also Examples

View source: R/na_replace.R

Description

Replaces NA values with explicit values.

Usage

1
2
3
na_replace(x, .na, ...)

na.replace(x, .na)

Arguments

x

vector in which NA values are to be replaced.

.na

value or object used to replace NA. See Details.

Details

na_replace replaces missing values in x by .na. Replacement is both class/type and length safe meaning the result is guaranteed to be the same class/type and length of x regardless of the value of .na.

Param: x

If x is categorical (e.g. character or factor), .na is optional. The default is "(NA)" and can be set with options( NA_explicit_ = new_value ). It can also be referenced directly with NA_explicit_.

If x is a factor, unique values of .na not in already present in levels(x) will be added. They are appended silently unless getOption('verbose')==TRUE in which a message reports the added levels.

Param: .na

.na can be either a scalar, vector or function.

If a vector, .na can be a length-1 scalar or length(x)-vector. If a length-1 scalar all missing values are replaced by it. If a length(x)-vector, missing values are replaced by the corresponding elements of.na. Recycling values of.na' is not allowed.

na.replace is a alias for na_replace that is likely to be deprecated.

Value

A vector with the class and length of x. NAs in x will be replaced by .na. .na is coerced as necessary.

See Also

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
  # Integers and numerics
  na_replace( c(1,NA,3,NA), 2 )    # 1 2 3 2   
  na_replace( c(1,NA,3,NA), 1:4 )  # 1 2 3 4

  na_replace( c(1,NA,3,NA), letters[1:4] )  # "1" "b" "3" "d"

  # Characters 
  lets <- letters[1:5]
  lets[ c(2,4) ] <- NA
  lets %>% na_replace

  # Factors 
  fct <- as.factor( c( NA, letters[2:4], NA) )
  fct
  na_replace(fct, "z")  # z b c d z  -- level z added
  na_replace(fct, letters[1:5] )
  na_replace(fct)
     

decisionpatterns/na.actions documentation built on Aug. 25, 2020, 8:04 p.m.