Sformatuj numer jako stałą szerokość, z początkowymi zerami [duplikat]

to pytanie ma już odpowiedzi tutaj : Jak dodać początkowe zera? (8 odpowiedzi) Zamknięte 4 lat temu .

Następujący kod

a <- seq(1,101,25)
b <- paste("name", 1:length(a), sep = "_")

Produkuje to wyjście:

"name_1"  "name_26"  "name_51"  "name_76"  "name_101"

Chciałbym mieć taką samą szerokość wszystkich wartości, co oznacza dla mnie, aby wypełnić wartości zerami w następujący sposób:

"name_001"  "name_026"  "name_051"  "name_076"  "name_101"

Jak sobie z tym poradzić?

(to pytanie dotyczy tego .)

Author: Community, 2011-11-25

1 answers

Jest na to kilka rozwiązań.

Jednym z nich jest użycie sprintf. Używa ona kodów formatowania stylu C osadzonych w łańcuchu znaków, aby wskazać format innych przekazywanych do niego argumentów. Na przykład kod formatowania %3d oznacza sformatowanie liczby jako liczby całkowitej o szerokości 3:

a <- seq(1,101,25)
sprintf("name_%03d", a)
[1] "name_001" "name_026" "name_051" "name_076" "name_101"

Inny to formatC i paste:

paste("name", formatC(a, width=3, flag="0"), sep="_")
[1] "name_001" "name_026" "name_051" "name_076" "name_101"
 229
Author: Andrie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-22 14:26:17