Halten Sie format Breite in der wissenschaftlichen notation

Schreibe ich eine benutzerdefinierte print.xx Funktion zu zeigen, ein paar Daten ziemlich tabelliert.
Die Breite der Spalte ist 11-stellig, so dass ich etwas wie das hier tun:

> format(1234.567,width=11,digits=7)
[1] "   1234.567"
> format(1234.56789,width=11,digits=7)
[1] "   1234.568"

So weit So gut. Das problem kommt, wenn ich eine sehr große/kleine Anzahl und die wissenschaftliche notation ein:

> format(1234.56789e10,width=11,digits=7)
[1] "1.234568e+13"
> format(1234.56789e-10,width=11,digits=7)
[1] "1.234568e-07"

Sollte es verwenden die wissenschaftliche notation, ok, aber ich brauche es zu bleiben, die 11 Zeichen Breite. Ich habe mir die scientific und scipen Parameter, aber es geht immer noch über die 11 Zeichen begrenzt. Eine option könnte sein, um zu überprüfen, ob die wissenschaftliche Schreibweise generiert wird, und wenn ja, reduzieren Sie die digits parameter, sondern sieht auch kitschig auf mich.

Wie kann ich erzwingen, dass es mir einen string mit fester Länge, unabhängig davon, ob die Zahl wird in wissenschaftlicher notation oder nicht?

Schreibe einen Kommentar