使用 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, .)))
我有一个数字数据框,我想将所有超过 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, .)))