Takes a vector, matrix or data.frame
and replaces some values by NA
.
Arguments
- x
A vector, matrix or
data.frame
.- p
Proportion of missing values to add to
x
. In casex
is adata.frame
,p
can also be a vector of probabilities per column or a named vector (see examples).- seed
An integer seed.
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