Le code suivant
a <- seq(1,101,25)
b <- paste("name", 1:length(a), sep = "_")
produit cette sortie:
"name_1" "name_26" "name_51" "name_76" "name_101"
Je voudrais avoir la même largeur de toutes les valeurs, ce qui signifie pour moi de remplir les valeurs avec des zéros comme ceci:
"name_001" "name_026" "name_051" "name_076" "name_101"
Comment puis-je gérer ça?
(Cette question est liée à celle-ci .)
Il y a plusieurs solutions à cela.
L'un d'eux consiste à utiliser sprintf
. Ceci utilise les codes de formatage de style C
incorporés dans une chaîne de caractères pour indiquer le format des autres arguments qui lui sont transmis. Par exemple, le code de formatage %3d
signifie formater un nombre en entier de largeur 3:
a <- seq(1,101,25)
sprintf("name_%03d", a)
[1] "name_001" "name_026" "name_051" "name_076" "name_101"
Un autre est formatC
et paste
:
paste("name", formatC(a, width=3, flag="0"), sep="_")
[1] "name_001" "name_026" "name_051" "name_076" "name_101"