连接字符串 - 方便包装?

时间:2015-05-13 10:26:22

标签: r string

是否有一个软件包可以使用+类型的方法(即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"

2 个答案:

答案 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"