我读过R中的所有内容都是函数。因此,我想知道“ +”是否也是一个函数,是否可以编写类似的代码:
xx <- c(1,2,3)
yy <- c(1,2,3,4,5,6)
# zz is the sum of the two lengths
zz <- +(if(exists("xx")) length(xx), if(exists("yy")) length(yy))
是的你可以:
xx <- c(1,2,3)
yy <- c(1,2,3,4,5,6)
# zz is the sum of the two lengths
zz <- `+`(if(exists("xx")) length(xx), if(exists("yy")) length(yy))
#[1] 9
要调用没有句法有效名称的对象(例如,+
如果您执行类似操作会隐式调用的函数1 + 2
),则需要将该名称括在反引号(`)或引号(“或')中。
另请参见R语言定义的第3.1.4节:
除语法外,应用运算符和调用函数之间没有区别。实际上,x + y可以等效地写成“ +”(x,y)。注意,由于“ +”是非标准函数名称,因此需要用引号引起来。
在您的代码中,您得到错误:
Error: unexpected ',' in "zz <- +(if(exists("xx")) length(xx),"
这是因为您没有调用(binary)函数"+"
,而是一元运算符+
,该运算符不需要函数参数,因此将括号解释为“算术”运算符。这些之间不允许使用逗号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句