test <- c(1,2,0,5,0)
which(test == 0)
test %>% which(.==0)
test %>% which(,==0)
test %>% which( ==0)
我正在尝试弄清楚如何将向量通过管道传输到which()函数中。使用which(test == 0)给了我想要的结果,但是在最后三行使用管道都会给我错误。如何使用管道获得与 which(test == 0) 相同的结果?
您有 2 个功能,
which
和 ==
。但是像 +
、*
和 ==
这样的二元运算符函数通过管道输入没有多大意义。
> (test == 0) |> which()
[1] 3 5
> (test == 0) %>% which()
[1] 3 5
您可以使用普通函数表示法而不是二元运算符的中缀表示法
test == 0
来编写 "=="(test, 0)
,并且使用该语法您可以将其全部通过管道传输,但这对我来说会降低可读性:
test %>% `==`(0) %>% which()
[1] 3 5
使用 {...} 来防止点插入到
which
:
test %>% { which(. == 0) }
## [1] 3 5