A Handy Concatenation Operator

A handy concatenation operator

A handy concatenation operator: It may be useful for you to define a concatenation operator for characters. Sometimes, I find this is more intuitive and handy than using paste0 or paste. Also, it makes your code look better when you have nested paste, e.g.paste0("Y~",paste0("z",1:3, "*x",1:3,collapse="+"). The drawback is that it may reduce the readability of your code to other R user, since it is a self define function.(i guess it should be fine, cuz it is really intuitive. Also other scripting language also has similar concatenation operator)

1
2
3
4
5
6
7
"%+%" <- function(...){
paste0(...,sep="")
}
> "hello" %+% "world"
[1] "helloworld"
"hello" %+% "world" %+% 1:3
[1] "helloworld1" "helloworld2" "helloworld3"

Generating formula:

1
2
"Y~" %+% paste0("z",1:3, "*x",1:3,collapse="+")
[1] "Y~z1*x1+z2*x2+z3*x3"

TszKin Julian Chan

A handy concatenation operator

Puede ser útil para usted definir un operador de concatenación para caracteres. A veces, encuentro que esto es más intuitivo y práctico que usar paste0 o paste. Además, hace que su código se vea mejor cuando ha anidado pegar, por ejemplo, pegar: 0 ("Y ~", paste0 ("z", 1: 3, "* x", 1: 3, collapse = "+"). El inconveniente es que puede reducir la legibilidad de su código a otro usuario de R, ya que es una función de autodefinición (supongo que debería estar bien, porque es realmente intuitivo. También otro lenguaje de script también tiene un operador de concatenación similar)

1
2
3
4
5
6
7
"%+%" <- function(...){
paste0(...,sep="")
}
> "hello" %+% "world"
[1] "helloworld"
"hello" %+% "world" %+% 1:3
[1] "helloworld1" "helloworld2" "helloworld3"

Fórmula generadora:

1
2
"Y~" %+% paste0("z",1:3, "*x",1:3,collapse="+")
[1] "Y~z1*x1+z2*x2+z3*x3"

TszKin Julian Chan

Leave a Reply