r语言 - 将 NA 分配给具有许多列的数据框中超出范围的值时,错误找不到函数"%>%<-"



假设我想将 NA 分配给不在 [0.0, 3.0] 范围内的值。为此,我应该 1) 选择值,2) 为值分配 NA。

我从下面的链接中使用select_if()阅读了一个解决方案

在 R 中选择具有值范围的列

通过该解决方案,我成功地选择了所需的值。

library(tidyverse)
set.seed(100)
df = as.data.frame(matrix(rnorm(100) + 1, ncol = 10))
df %>% select_if(~ all(.x > 0 & .x < 3))

但是当我像下面这样分配 NA 时:

df %>% select_if(~ all(.x > 0 & .x < 3)) <- NA

发生错误:

找不到函数"%>%<-"

我错过了什么?

select_if在这里不是正确的函数,此外,请阅读@r2evan的评论以了解为什么它实际上不起作用。

请尝试将mutate_allreplace一起使用。

library(tidyverse)
df1 <- df %>%  mutate_all(funs(replace(., . > 0 & . < 3, NA)))

与基本 R 相同,您可以尝试

df[df > 0 & df < 3] <- NA

相关内容