我正在试验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
这对我有用