R 在使用管道操作符的函数中抑制括号

R 在使用管道操作符的函数中抑制括号,r,R,有人能解释一下为什么我必须在下面显示的命令中取消函数is.factor的括号吗?学生数据是从.csv文件中读取的。我可以看到学生数据的结构,我只想选择因子变量。该命令工作正常,但我不明白为什么不能写括号。我在论坛上看到了一个例子。对不起,如果这个问题很傻或者以前有人问过。我找不到任何类似的问题 studentData%%>%select_if(is.factor)要求您“放下括号,选择_if”的不是管道,%%> .predicate“应用于列或逻辑向量的谓词函数。已选择.predicate为TR

有人能解释一下为什么我必须在下面显示的命令中取消函数is.factor的括号吗?学生数据是从.csv文件中读取的。我可以看到学生数据的结构,我只想选择因子变量。该命令工作正常,但我不明白为什么不能写括号。我在论坛上看到了一个例子。对不起,如果这个问题很傻或者以前有人问过。我找不到任何类似的问题


studentData%%>%select_if(is.factor)

要求您“放下括号,选择_if”的不是管道,
%%>

.predicate“应用于列或逻辑向量的谓词函数。已选择.predicate为TRUE或返回TRUE的变量。此参数传递给rlang::as_function(),因此支持quosure样式的lambda函数和表示函数名的字符串。”


这里没有计算函数,而是传递一个R对象。(函数是对象,就像data.frames或scalar一样)。在
select\u if
的范围内,评估会在以后进行。包括括号会告诉R在执行
select\u if
调用时评估函数。这是不正确的。它需要在以后进行评估。

@akrun我想OP是在问为什么不能
studentData%>%select\u if(is.factor())
非常感谢。这很有意义。