Die print.default
Funktion betrachtet den options()['digits']
Wert in "entscheiden", welche Breite zuzuweisen, so dass Sie es möglicherweise erhöhen müssen sowie versuchen, "scipen" zu maximieren. Es gibt betriebssystemspezifische Probleme mit Werten über 16 für diese Breite. Was die Kommas anbelangt, ... vergiss es. R ist kein Finanzberichtssystem. Wenn Sie dieses Ausgabeformat erzwingen müssen, können Sie Objekte für eine bestimmte Klasse definieren und Druckmethoden für sie mit sprintf und formatC schreiben. Oder Sie können print.default neu schreiben, aber dies betrifft möglicherweise nur Druckvorgänge, die nicht ausgeführt wurden an eine der anderen 100+ Methoden für print
übergeben.
Es gibt Ausgabemethoden. formatC()
und prettyNum()
haben beide ein 'big.mark'-Argument, das Kommas in Zahlen einfügt. Die Ausgabe erfolgt im Format "character"
, also versuchen Sie, weitere Berechnungen für die von Ihnen erstellten Ergebnisse durchzuführen, und versuchen Sie, nicht.
Es gibt auch Eingabemethoden, die Spalten mit Zahlen enthalten, Kommas oder Währungssymbole lesen:
setAs("character", "num.with.commas", function(from) as.numeric(gsub(",", "", from)))
setAs("character", "euro",
function(from) as.numeric(gsub("€", "", from)))
setAs("character", "num_pct",
function(from) as.numeric(gsub("%", "", from))/100)
# you will get warning messages if you have not defined the class,
# .... but this will still succeed
Input <- "A B C
1,000 1% 3.50€
2,000 2% 4.77€
3,000 3% €5.68
"
DF <- read.table(textConnection(Input), header = TRUE,
colClasses = c("num.with.commas", "num_pct", "euro"))
str(DF)
Aus morbider Neugier, warum? Die doppelte Genauigkeit ist nur auf ~ 16 Stellen genau, also wird alles danach abgerundet. –
Buchhaltungsverwendung – JoeJoe
Verstehen Sie den Unterschied zwischen dem, was in der Konsole angezeigt wird und was in eine Datei oder eine andere Verbindung geschrieben wird? –