我正在尝试替换列子集中的 NA 并且我想使用 tidyverse/dplyr 语法。dplyr v1.0.2
在下面,我只想在 ab,ac 列中用 999 替换 NA,而不是在 ads 中
tbf <- tibble( ab = c(1,3,NA), ac = c(23,NA,33), d = c(22,22,NA), ads = c('ds', NA, "dwe"))
tbf %>% mutate(across(starts_with('a') & where(is.numeric)), ~replace_na(999))
Run Code Online (Sandbox Code Playgroud)
似乎不起作用。
我也试过~replace_na(.x,999)了。那也没有用。
任何帮助表示赞赏。
该fn(您正在使用replace_na)需要里面的across。然后,您还需要通过.在replace_na. 通过这种方式,您可以使用您在问题中提出的过滤(以“a”开头和数字值的列),而不是此处专门使用列名的其他答案。
tbf %>% mutate(across(starts_with('a') & where(is.numeric), ~replace_na(.,999)))
Run Code Online (Sandbox Code Playgroud)