使用 dplyr 将所有高于阈值的值更改为 NA

Use dplyr to change all values above threshold to NA

我有一个数字数据框,我想将所有超过 8 的值更改为 NA。我知道还有其他方法可以做到这一点,但我想使用 dplyr 来完成这个,这样我就可以将管道与我拥有的其他代码一起使用。

df <- data.frame(c(1:9), c(2:10))

这是我目前尝试过的方法:

library(dplyr)

df %>%
  mutate(across(everything(), function(x) ifelse(x>8, NA, x)))

df %>%
  mutate(across(everything(), function(x) na_if(x >8)))

我们可以将输出分配给原始对象以进行这些更改,因为 %>% 不会执行打印在控制台上的输出。

df <- df %>% 
       mutate(across(everything(), ~ ifelse(. > 8, NA, .)))

或者另一个选项是 %<>% 来自 magrittr

的运算符
library(magrittr)
df %<>%
    mutate(across(everything(), ~ ifelse(. > 8, NA, .)))