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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Denke ich, werden Sie haben, um zu berechnen die Ziffern entsprechend.. so Etwas vielleicht funktionieren:
Beziehungsweise mit
format
:In meinem Fall habe ich verwendet:
Brauchen Sie nur zu wissen, wie viele Zeichen Sie wollen und tun, die richtige balance zwischen Breite.dezimal, das ist %11.5 e
sprintf("%0.6g", 1234.56789e100)
geht über 11:"1.23457e+103"
sprintf("%0.5g", 1234.56789e100)
: