2011-07-14 17 views
26

Digamos que hay un vector x:¿Hay alguna manera de pegar los elementos de un vector en R sin usar un bucle?

x <- c("a", " ", "b") 

y quiero convertir rápidamente esta en una sola cadena "a b". ¿Hay alguna manera de hacer esto sin un bucle? Sé que con un bucle que podría hacer esto:

y <- "" 
for (i in 1:3){ 
    paste(y, x[i], sep = "") 
} 

> y 
[1] "a b" 

pero voy a tener que hacer esto durante muchos, muchos iteraciones, y tener que bucle sobre esto y reemplazar el original con el nuevo cada vez que se convertiría en mucho tiempo . Siempre quiero ser capaz de hacer algo como esto:

x <- paste(x) 

como si la pasta() elegantemente podría dividir los elementos de un vector propio, pero sé que no se puede. ¿Hay alguna otra función, o una forma más creativa de usar paste(), que pueda lograr esto de manera eficiente?

Respuesta

57

sólo tiene que utilizar el argumento collapse:

paste(x,collapse="") 
+0

Gracias! Seguí pensando que debería haber algo llamado "colapso" involucrado en esto, pero no pude encontrar ninguna documentación sobre él. – Max

+4

¡Está ahí en '? Paste'! ;) Si alguna vez está confundido acerca de una función, escriba '? Function' en la consola para acceder a los archivos de ayuda. – joran

+0

Sí, supongo que no se me ocurrió que sería un argumento de pegar. Justo cuando crees conocer una función ...: P – Max

Cuestiones relacionadas