r - 在mutate中使用replace_na和cross

标签 r dplyr

我正在尝试替换列子集中的 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/

相关文章:

r - 防止在 rmarkdown 中运行 block

r - 使用 knitr、HTML/markdown 和 PDF/Latex 实现一致的图形字体大小

r - 每个数据组合的特殊组编号

r - 为什么 dplyr 这么慢?

r dplyr sample_frac 在数据中使用种子

r - 在 ggplot 图中使用 unicode 字符的舒适方式

R-查找值的唯一排列

rollapply() 由 n 个月

R - 如果某个列是统一的或包含不同的因子值,则按组指示

r - 使用 dplyr 将数据框中的有序对转换为无序对