“+”支持numeric
中的integer
,Date
和r
。以下所有操作均有效。
> 5 + 5L
[1] 10
> Sys.Date() + 5
[1] "2018-01-18"
但+
character
之间不起作用。像:
> "one" + "one"
Error in "one" + "one" : non-numeric argument to binary operator
> "What is date today? Ans:" + Sys.Date()
Error in unclass(e1) + unclass(e2) :
non-numeric argument to binary operator
是否禁止在numeric
中允许r
以外的其他参数?或者有人可以覆盖+
行为以支持其他类型的参数。
答案 0 :(得分:6)
您可以重新定义+
,但我不建议这样做。
`+` <- function(x, y) UseMethod("+")
`+.character` <- function(x, y) paste0(x, y)
`+.default` <- .Primitive("+")
1 + 1 ##2
"a" + "b" ##"ab"
"a" + 2 ##"a2"