R语言 如何使.csv文件中的数据随机更改为NA?

kr98yfug  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(109)

因此,对于我正在进行的一个项目,我必须使充满数据的csv文件中5%的数据随机更改为NA。我对使用R或Microsoft Excel函数的方法都很满意。我对R不太熟悉,所以我真的不知道从哪里开始。

dzhpxtsq

dzhpxtsq1#

你可以这样做:

library(tidyverse)

df <- read_csv("mtcars.csv")

sample_NA <- function(x, pct_na = 5) {
  sample(c(rep(x, 100-pct_na), rep(NA, pct_na)), 1)
}

# using base R
dfrandomised <- apply(df, 1:2, sample_NA)

# or using tidyverse
dfrandomised <- df %>% 
  rowwise() %>%
  mutate(across(everything(), sample_NA)) %>%
  ungroup()

# A tibble: 32 × 11
     mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
 1  21       6  160    110  3.9   2.62  16.5     0     1    NA     4
 2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
 3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
 4  NA       6  258    110  3.08  3.22  19.4     1     0     3     1
 5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
 6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
 7  14.3     8  360    245  3.21  3.57  15.8     0    NA     3     4
 8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
 9  22.8     4  141.    95 NA     3.15  22.9     1     0     4     2
10  19.2     6   NA    123  3.92  3.44  18.3    NA     0     4     4
# ℹ 22 more rows
    
write_csv(dfrandomised, "mtcars.csv")

字符串

相关问题