Skip to contents

Takes a vector, matrix or data.frame and replaces some values by NA.

Usage

generateNA(x, p = 0.1, seed = NULL)

Arguments

x

A vector, matrix or data.frame.

p

Proportion of missing values to add to x. In case x is a data.frame, p can also be a vector of probabilities per column or a named vector (see examples).

seed

An integer seed.

Value

x with missing values.

Examples

generateNA(1:10, p = 0.5, seed = 3345)
#>  [1] NA NA  3 NA  5 NA  7 NA  9 10
generateNA(rep(Sys.Date(), 10))
#>  [1] "2024-02-02" "2024-02-02" "2024-02-02" "2024-02-02" "2024-02-02"
#>  [6] "2024-02-02" NA           "2024-02-02" "2024-02-02" "2024-02-02"
generateNA(cbind(1:10, 10:1), p = 0.2)
#>       [,1] [,2]
#>  [1,]    1   10
#>  [2,]   NA    9
#>  [3,]    3    8
#>  [4,]   NA    7
#>  [5,]    5    6
#>  [6,]   NA    5
#>  [7,]    7    4
#>  [8,]    8    3
#>  [9,]    9   NA
#> [10,]   10    1
head(generateNA(iris))
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1          5.1         3.5          1.4         0.2  setosa
#> 2          4.9         3.0          1.4         0.2  setosa
#> 3          4.7         3.2          1.3         0.2  setosa
#> 4          4.6         3.1          1.5         0.2  setosa
#> 5          5.0         3.6          1.4         0.2  setosa
#> 6          5.4          NA          1.7          NA  setosa
head(generateNA(iris, p = 0.2))
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1          5.1         3.5          1.4         0.2    <NA>
#> 2          4.9         3.0           NA         0.2  setosa
#> 3          4.7          NA           NA          NA  setosa
#> 4          4.6         3.1          1.5         0.2  setosa
#> 5           NA         3.6          1.4          NA    <NA>
#> 6           NA         3.9           NA         0.4  setosa
head(generateNA(iris, p = c(0, 1, 0.5, 0.5, 0.5)))
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1          5.1          NA           NA          NA  setosa
#> 2          4.9          NA          1.4         0.2  setosa
#> 3          4.7          NA           NA         0.2  setosa
#> 4          4.6          NA           NA          NA    <NA>
#> 5          5.0          NA          1.4          NA    <NA>
#> 6          5.4          NA          1.7          NA  setosa
head(generateNA(iris, p = c(Sepal.Length = 1)))
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1           NA         3.5          1.4         0.2  setosa
#> 2           NA         3.0          1.4         0.2  setosa
#> 3           NA         3.2          1.3         0.2  setosa
#> 4           NA         3.1          1.5         0.2  setosa
#> 5           NA         3.6          1.4         0.2  setosa
#> 6           NA         3.9          1.7         0.4  setosa
head(generateNA(iris, p = c(Species = 0.2, Sepal.Length = 0.5)))
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1           NA         3.5          1.4         0.2  setosa
#> 2          4.9         3.0          1.4         0.2    <NA>
#> 3          4.7         3.2          1.3         0.2  setosa
#> 4          4.6         3.1          1.5         0.2  setosa
#> 5          5.0         3.6          1.4         0.2  setosa
#> 6           NA         3.9          1.7         0.4  setosa