本节书摘来自华章出版社《数据科学:R语言实现》一 书中的第1章,第1.8节,作者:R for Data Science Cookbook 丘祐玮(David Chiu),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.8 创建中缀操作符
在之前的教程中,我们学到了如何创建用户自定义的函数。到目前为止,我们提到的大部分函数都是前缀函数,即参数位于函数名后边的括号中。然而,这种语法会使得两个变量之间的二元操作更加难以阅读。因为我们更熟悉把操作符放到两个变量之间。为了解决这个问题,我们会在本教程中展示如何创建中缀操作符。
准备工作
确保你已经在操作系统中安装了R语言,完成了之前的步骤。
实现步骤
执行下列步骤,来创建R中的中缀操作符。
1.让我们看一下,如何把中缀操作符转换为前缀操作符:
运行原理
在标准函数中,如果想执行变量a和b上的运算,我们需要以func(a,b)的形式创建函数。这是标准函数的语法。这种表示要比一般的数学记号(即a * b)难读。然而我们可以创建中缀操作符来简化这种函数语法。
在创建中缀操作符之前,我们查看了两个变量上二元操作符的不同语法。在第1步中,我们展示了如何用二元操作符执行算术运算。与标准的数学公式类似,我们只需要把二元操作符放到两个变量之间。另一方面,我们可以把中缀表示形式转换为前缀表示形式。就像标准函数一样,我们可以使用二元操作符作为函数名,并把变量放在括号中间。
除了可以在R中使用预定义的中缀操作符,用户也可以自己定义一些。要创建一个操作符,我们需要用%作为函数开始和结尾,并用单引号(')或者反引号(`)包含整个函数名。这里,我们创建了名为%match%的操作符,来找出两个向量的交集。我们也可以创建另一个名为%diff%的操作符来找出两个向量的差集。最后,尽管可以使用创建好的中缀操作符来操作两个以上的向量,但是我们使用函数Reduce在列表上执行%match%运算。
更多技能
我们也可以通过创建同名的中缀操作符,重写已有的操作符:
这里,我们可以使用+连接两个字符串。
请发表评论