web-dev-qa-db-fra.com

Existe-t-il un moyen de coller ensemble les éléments d'un vecteur dans R sans utiliser de boucle?

Disons qu'il y a un vecteur x:

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

et je veux transformer rapidement cela en une seule chaîne "a b". Existe-t-il un moyen de le faire sans boucle? Je sais qu'avec une boucle je pourrais faire ceci:

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

> y
[1] "a b"

mais je devrai le faire sur de nombreuses, nombreuses itérations, et devoir boucler dessus et remplacer l'original par le nouveau à chaque fois prendrait beaucoup de temps. Je veux toujours pouvoir faire quelque chose comme ça:

x <- paste(x)

comme si paste () pouvait diviser intelligemment les éléments d'un vecteur lui-même, mais je sais que non. Existe-t-il une autre fonction, ou une manière plus créative d'utiliser paste (), qui peut accomplir cela efficacement?

37
Max

Il vous suffit d'utiliser l'argument collapse:

paste(x,collapse="")
81
joran