r语言 - 在带有管道函数的向量中应用 is.na() 函数



我正在试验dplyr中的pipe函数,并在代码下方运行但没有成功 -

library(dplyr)
12 %>% ifelse(is.na(.), FALSE, TRUE)
### Error in ifelse(., is.na(.), FALSE, TRUE) : unused argument (TRUE)

为什么我收到此错误的任何指针?如果我想使用pipe,正确的方法是什么?

另一种选择是进一步取消嵌套函数。

12 %>% is.na %>% ifelse(FALSE, TRUE)
# TRUE

我们可以直接在管道中使用is.na,而不是嵌套它:

12 %>% is.na %>% ifelse(FALSE, TRUE)

12 %>% is.na %>% `!`

library(magrittr)
12 %>% is.na %>% not

12 %>% (is.na %>% Negate)

有几种可能性:

使用括号:正如@tmfmnk指出的那样,应该使用{}来获得该行为pipe

library(dplyr)
vec <- c(12,13, NA)
vec %>% {ifelse(is.na(.), FALSE,TRUE)}
# TRUE  TRUE FALSE

解嵌套:或者,正如@Ands指出的,可以解嵌套函数:

12 %>% is.na %>% ifelse(FALSE, TRUE)
library(dplyr)
12 %>% ifelse(is.na(.), FALSE)
#FALSE

这对我有用

最新更新