我们在 R 中使用的大多数运算符都是二元运算符(有两个操作数)。
因此,它们是中缀运算符,用于操作数之间。实际上,这些运算符在后台执行函数调用。
例如,表达式 a+b
实际上是以 a
和 b
作为参数调用函数 `+`()
,即 `+`(a, b)
。
注意:反引号(`
)很重要,因为函数名包含特殊符号。
以下是一些示例表达式以及在后台调用的实际函数。
示例:R 中的中缀运算符如何工作?
> 5+3
[1] 8
> `+`(5,3)
[1] 8
> 5-3
[1] 2
> `-`(5,3)
[1] 2
> 5*3-1
[1] 14
> `-`(`*`(5,3),1)
[1] 14
可以在 R 中创建用户定义的中缀运算符。这是通过命名一个以 %
开头和结尾的函数来实现的。
以下是一个用户定义的中缀运算符的示例,用于检查一个数是否能被另一个数整除。
示例:用户定义的中缀运算符
`%divisible%` <- function(x,y)
{
if (x%%y ==0) return (TRUE)
else return (FALSE)
}
此函数可以用作中缀运算符 a %divisible% b
,也可以用作函数调用 `%divisible%`(a, b)
。两者是相同的。
> 10 %divisible% 3
[1] FALSE
> 10 %divisible% 2
[1] TRUE
> `%divisible%`(10,5)
[1] TRUE
定义自己的中缀运算符时要记住的是,它们必须以 %
开头和结尾。在函数定义中用反引号(`
)将其括起来,并转义任何特殊符号。
R 中的预定义中缀运算符
%% | 模运算符 |
%/% | 整除 |
%*% | 矩阵乘法 |
%o% | 外积 |
%x% | 克罗内克积 |
%in% | 匹配运算符 |