Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 连接字符串-方便包装器?_R_String - Fatal编程技术网

R 连接字符串-方便包装器?

R 连接字符串-方便包装器?,r,string,R,String,是否有一个包可以扩展+运算符,并使用字符类型的方法(即`+.character`提供%s+%运算符: > library(stringi) > "a" %s+% "b" [1] "ab" > "a" %stri+% "b" [1] "ab" 和%stri+%操作员: > library(stringi) > "a" %s+% "b" [1] "ab" > "a" %stri+% "b" [1] "ab" 为了提高代码的可读性,您可以增强base+函数,

是否有一个包可以扩展
+
运算符,并使用
字符
类型的方法(即
`+.character`提供
%s+%
运算符:

> library(stringi)
> "a" %s+% "b"
[1] "ab"
> "a" %stri+% "b"
[1] "ab"
%stri+%
操作员:

> library(stringi)
> "a" %s+% "b"
[1] "ab"
> "a" %stri+% "b"
[1] "ab"

为了提高代码的可读性,您可以增强base
+
函数,使其与Python中的一样工作:

"+" <- function(x, y) {
         if(is.character(x) || is.character(y)) {
                 return(paste(x, y, sep = ""))
         } else {
                 .Primitive("+")(x, y)
         }
}

"a" + "b"
[1] "ab"

“+”
character
是一个特殊的类(它也是一种类型)。看起来
+
是硬编码的,为字符输入提供此错误,在这种情况下从不调用该方法。
"+" <- function(x, y) {
         if(is.character(x) || is.character(y)) {
                 return(paste(x, y, sep = ""))
         } else {
                 .Primitive("+")(x, y)
         }
}

"a" + "b"
[1] "ab"