Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么';t中缀函数:=来自tidyverse是否需要它周围的%?_R_Tidyverse_Infix Operator - Fatal编程技术网

为什么';t中缀函数:=来自tidyverse是否需要它周围的%?

为什么';t中缀函数:=来自tidyverse是否需要它周围的%?,r,tidyverse,infix-operator,R,Tidyverse,Infix Operator,如果要创建自己的中缀函数,则需要使用%fun\u name%格式。为什么tidyverse的:=不是这样?同样,操作员,也可构成tidyverse这些运算符是而不是函数。它们只有在作为参数的一部分提供给使用非标准求值并知道如何处理它们的函数时才有意义。R解释器不将这些运算符视为函数,您不能直接调用它们。如果您调用!!解释器将准独立参数之外的某些内容视为: !(!(something)) 如果在准整数参数外部调用:=,则会得到一个异常 另外,您可以总是重载基本中缀函数或为它们定义新的S3方法,而

如果要创建自己的中缀函数,则需要使用
%fun\u name%
格式。为什么
tidyverse的
:=
不是这样?同样,操作员
,也可构成
tidyverse

这些运算符是而不是函数。它们只有在作为参数的一部分提供给使用非标准求值并知道如何处理它们的函数时才有意义。R解释器不将这些运算符视为函数,您不能直接调用它们。如果您调用
!!解释器将准独立参数之外的某些内容视为:

!(!(something))
如果在准整数参数外部调用
:=
,则会得到一个异常

另外,您可以总是重载基本中缀函数或为它们定义新的S3方法,而无需
%
。解释器总是将这些符号视为中缀函数,并且不保留它们。e、 g:

> `+` <- function(x,y) x - y

> 1 + 2
[1] -1

`/.foo` <- function(x, y) x * y

> my_object <- structure(1, class = "foo")

> 1 / 2
[1] 0.5

> my_object / 2

[1] 2
attr(,"class")
[1] "foo"

> `:=` <- function(x,y) x - y

> 5 := 2

[1] 3