我正在尝试替换列子集中的 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))
似乎不起作用。我试过
~replace_na(.x,999)
也。那也没有用。任何帮助表示赞赏。
最佳答案
fn
(您正在使用 replace_na
)需要在 across
内.然后,您还需要通过插入 .
来引用当前列。在 replace_na
.通过这种方式,您可以使用您在问题中提出的过滤(以“a”开头和数值的列),而不是此处专门使用列名的其他答案。
tbf %>% mutate(across(starts_with('a') & where(is.numeric), ~replace_na(.,999)))
关于r - 在mutate中使用replace_na和cross,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63970216/