Como han señalado otros, paste()
es el camino a seguir. Pero puede ser molesto tener que escribir paste(str1, str2, str3, sep='')
cada vez que desee el separador no predeterminado.
Puede crear fácilmente funciones de envoltura que lo hacen mucho más simple.Por ejemplo, si usted se encuentra concatenación de cadenas sin separador muy a menudo, puede hacer:
p <- function(..., sep='') {
paste(..., sep=sep, collapse=sep)
}
o si a menudo desea unirse a las cadenas de un vector (como implode()
de php):
implode <- function(..., sep='') {
paste(..., collapse=sep)
}
Permite que hagas hacer esto:
p('a', 'b', 'c')
#[1] "abc"
vec <- c('a', 'b', 'c')
implode(vec)
#[1] "abc"
implode(vec, sep=', ')
#[1] "a, b, c"
Además, no es el construido en paste0
, que hace lo mismo que mi implode
, pero sin allo ala separadores personalizados. Es ligeramente más eficiente que paste()
.
La mayoría de las respuestas aquí se rompen si las cadenas son vectores, como las notas de respuesta de @ RichardScriven. – smci
@smci ¿Qué hay de la pequeña respuesta que he publicado? ¿Alguna sugerencia para mejorarlo? –