'+'运算符支持r中的非数字参数

时间:2018-01-13 19:46:47

标签: r

“+”支持numeric中的integerDater。以下所有操作均有效。

> 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以外的其他参数?或者有人可以覆盖+行为以支持其他类型的参数。

1 个答案:

答案 0 :(得分:6)

您可以重新定义+,但我不建议这样做。

`+` <- function(x, y) UseMethod("+")
`+.character` <- function(x, y) paste0(x, y)
`+.default` <- .Primitive("+")

1 + 1 ##2
"a" + "b" ##"ab"
"a" + 2 ##"a2"