首页 > 解决方案 > 使用 `dplyr::na_if` 有可能创建缺失数据?

问题描述

我对模拟可能丢失的数据感兴趣。我如何使用 using 来做到这一点dplyr::na_if

直觉上,我想做类似的事情:

mtcars %>% 
  mutate(mpg = na_if(mpg, rbinom(n = n(),
                                 1, 
                                 prob = .5) == 1))

但我认为这是错误的,因为na_if真的是为了匹配xand y。如何使用na_if来创建缺失概率?

(编辑:另外,如果有更好的功能来创建缺失数据,tidyverse请在评论中告诉我)

标签: rdplyrnamissing-data

解决方案


稍微修改您的代码:

mtcars %>%
 mutate(mpg = if_else(rbinom(n(), 1, prob = 0.5) == 1, NA_real_, mpg))

    mpg cyl  disp  hp drat    wt  qsec vs am gear carb
1  21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
2  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
3  22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
4    NA   6 258.0 110 3.08 3.215 19.44  1  0    3    1
5  18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
6    NA   6 225.0 105 2.76 3.460 20.22  1  0    3    1
7  14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
8  24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
9  22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
10   NA   6 167.6 123 3.92 3.440 18.30  1  0    4    4

推荐阅读