Erklärung für sprintf("%03d", 7) Funktionalität?
Ich bin versucht zu schreiben von Funktionen in R, wo das Ziel ist zu Lesen mehrere .csv-Dateien. Sie sind benannt als 001.csv -, 002.csv, ... 332.csv.
Mit paste
ich es geschafft zu konstruieren, Namen 1.csv, 2.csv und so weiter, aber ich habe Schwierigkeiten mit dem hinzufügen von führenden Nullen. Es gibt einen Hinweis, dass der Bau wie sprintf("%03d", 7)
erforderlich ist, aber ich habe keine Ahnung warum und wie das funktioniert.
So kann jemand erklären, was die folgende Aussage kann tatsächlich?
- Hast du gelesen das
?sprintf
Hilfe-Seite? Gab es einen bestimmten Teil, war unklar für Sie?
Du musst angemeldet sein, um einen Kommentar abzugeben.
sprintf
stammt ursprünglich aus C und alle Formatierungs-Regeln entnommen sind es auch. Sehen?sprintf
in R oder diese oder diese Referenz, um zu lernen das Thema im detail. Hier werde ich kurz umreißen, was ist die Magie dahinter."%03d"
wird ein Formatierungs-string, der angibt, wie7
gedruckt werden.d
steht fürdecimal integer
(nichtdouble
!), also es sagt, es wird keine floating point oder so etwas, einfach nur ein normaler integer.3
zeigt, wie viele Ziffern der aufgedruckten Nummer haben. Genauer gesagt, die Anzahl nehmen mindestens 3-stellig:7
wird__7
(mit Leerzeichen statt Unterstriche), aber1000
bleiben1000
, da es keine Möglichkeit gibt, zu schreiben diese Zahl mit 3 Ziffern.0
vor3
zeigt, dass führende Leerzeichen sollte ersetzt werden durch Nullen. Experimentieren Sie mitsprintf("%+3d", 7)
,sprintf("%-3d", 7)
zu sehen, andere mögliche Modifikatoren (man nennt Sie flags).Dass gesagt wird, die Ausgabe von
sprintf("%03d", 7)
wird007
.