两种可能
iris %>%
filter(across(c(Sepal.Length, Sepal.Width , Petal.Length, Petal.Width), `>`, 2))
iris %>%
filter(across(c(Sepal.Length, Sepal.Width , Petal.Length, Petal.Width), ~ .x > 2))
# or
iris %>%
filter(across(c(Sepal.Length, Sepal.Width , Petal.Length, Petal.Width), function(x) x > 2))
让我们从第二个例子开始——我们使用匿名函数表示法,第一个是 purrr 的风格,第二个是经典风格。 Purrr 的风格只适用于某些包。
现在第一个 - across() 想要作为第二个参数的是一个函数,但您需要使用前缀形式的函数 Advanced R。 R中的所有函数都有这种形式,但通常不需要使用它,例如:
2 + 2
`+`(2, 2)
是一样的。
在across() 中,当您传递(作为第二个参数)函数时,您可以在逗号后传递可以传递给该函数的所有其他参数。对于>,第一个参数是第一个数字 - 并且有来自iris 的值,第二个参数是数字2,即您选择检查列中值的数字。