是否有一个软件包可以使用+
类型的方法(即character
)扩展`+.character` <-function(x,y) {...}
运算符?
在基础R
中,写入此错误会产生错误:
"a" + "b"
# Error in "a" + "b" : non-numeric argument to binary operator
我想要达到的目标是:
"a" + "b"
#"ab"
我知道paste0("a","b")
,但"a" + "b"
可以说更具可读性/更短。
当然,始终有可能定义special binary operator:
`%+%` <- function(x,y) paste0(x,y)
"foo" %+% "bar" %+% "baz"
# "foobarbaz"
答案 0 :(得分:1)
stringi
提供了%s+%
运营商:
> library(stringi)
> "a" %s+% "b"
[1] "ab"
和%stri+%
运营商:
> "a" %stri+% "b"
[1] "ab"
答案 1 :(得分:0)
为了提高代码的可读性,您可以增强基本的+
函数,使其在Python中起作用:
"+" <- function(x, y) {
if(is.character(x) || is.character(y)) {
return(paste(x, y, sep = ""))
} else {
.Primitive("+")(x, y)
}
}
"a" + "b"
[1] "ab"