微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用 dplyr 将所有高于阈值的值更改为 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(),.)))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。