r - 使用 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(), ~ ifelse(. > 8, NA, .)))
推荐阅读
- soap - 没有正文元素的 WSDL 响应
- bash - 从命令获取详细输出
- c++ - 用“gcc -c”编译一个 C++ 程序顺利通过。为什么?
- javascript - Can't pass var (which is a function) as argument in another function
- r - 总结后变异 - dplyr
- c# - 强制主线程在 RunWorkerCompletedEventArgs 上使用 Return
- javascript - 发生鼠标悬停事件时如何更改绘图图上的光标?
- manifest - 显示:“独立”PWA 不删除地址栏
- encoding - GitKraken 文件编码
- teamcity - Teamcity 不运行整个自定义脚本