Ainsi, " xx yy 11 22 33 " deviendra " xxyy112233 ". Comment puis-je réaliser cela ?
@Aniko. Y a-t-il une raison pour laquelle vous avez utilisé fixed=TRUE ?
Ainsi, " xx yy 11 22 33 " deviendra " xxyy112233 ". Comment puis-je réaliser cela ?
Il existe de nombreuses façons de le faire. Par exemple :
gsub(" ","", " xx yy 11 22 33 " , fixed=TRUE)
[1] "xxyy112233"
Edit : Comme l'a fait remarquer DWin dans les commentaires, la fixed=TRUE
n'est pas vraiment nécessaire. Elle indique à R que vous lui donnez une chaîne fixe au lieu d'une expression régulière. Vous pouvez rendre cette substitution plus générale en utilisant une expression régulière avec le paramètre \s
qui supprime tous les espaces blancs, y compris les nouvelles lignes et les tabulations :
> gsub("\\s","", " xx yy 11\n22\t 33 ")
[1] "xxyy112233"
Ici, la première barre oblique "échappe" à la seconde de sorte qu'elle est interprétée comme une barre oblique, et la chaîne comporte une nouvelle ligne et un caractère de tabulation en plus des espaces.
@DWin Supposément, c'est plus rapide si R sait qu'il n'a pas à invoquer le truc des expressions régulières. Dans ce cas, cela ne fait pas vraiment de différence, j'ai juste l'habitude de le faire.
Je viens d'apprendre l'existence du paquet "stringr" pour supprimer les espaces blancs du début et de la fin d'une chaîne de caractères avec str_trim( , side="both") mais il possède également une fonction de remplacement pour que :
a <- " xx yy 11 22 33 "
str_replace_all(string=a, pattern=" ", repl="")
[1] "xxyy112233"
Le paquet stringr ne fonctionne pas bien avec tous les encodages. Le paquet stringi est une meilleure solution, pour plus d'informations, voir github.com/Rexamine/stringi
Veuillez noter que les soultions écrites ci-dessus ne suppriment que les espaces. Si vous voulez également supprimer la tabulation ou la nouvelle ligne, utilisez stri_replace_all_charclass
de stringi
paquet.
library(stringi)
stri_replace_all_charclass(" ala \t ma \n kota ", "WHITE_SPACE", "")
## [1] "alamakota"
Cette commande ci-dessus est incorrecte. La bonne méthode est stri_replace_all_charclass(" ala \t ma \n kota ", " \\p {WHITE_SPACE}", "")
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.