Ich versuche eine Ausgabe von einer einfachen by()
-Funktion in R
zu runden. Das ist was ich habe:
Wie kann ich meine Ausgabe auf 5 Dezimalstellen umstellen und die Faktoren trotzdem beibehalten?
Ich habe versucht: round(by(glaciers[,1:3],glaciers$activity.level,mean),5)
, bekomme aber einen Fehler: Non-numeric argument to mathematical function
.
Wenn Sie die Ausgabe bereits in einer Variablen gespeichert haben, sagen Sie x:
%Vor%Wenden Sie dann round () auf jedes Element an (die Ausgabe von by () ist in diesem Fall eine Liste).
%Vor%die Neuzuweisung an x [] anstelle von x ermöglicht es x, Attribute beizubehalten, die an es von by () angehängt sind.
Edit: round () ändert tatsächlich den Wert der Variablen, ist jedoch von seinem Ausdruck abgekoppelt. Wenn Sie das Ausgabeformat für die wissenschaftliche Notation unterdrücken möchten, verwenden Sie das format="f" -Argument für formatC ()
%Vor%Also wäre die Korrektur zu dem ursprünglich geposteten Ausdruck
%Vor%Sie haben gefragt: "Wie kann ich meine Ausgabe auf 5 Dezimalstellen umstellen?" Aber ich denke, was Sie meinten, war: "Wie kann ich meine Ausgabe dazu bringen, 6 signifikante Zahlen zu zeigen?" Der folgende Code kombiniert zwei der vorherigen Antworten - die Idee der Neuzuweisung an res [] und die Verwendung von signif anstelle von rund.
%Vor%Dieser Code erzeugt die folgende Ausgabe:
%Vor% Sie haben nur ein paar Minuten Zeit, aber Sie könnten versuchen, sich die Funktionen format()
, formatC()
und prettyNum()
anzusehen. Ihre Hilfe-Dateien sehen jetzt wie Kauderwelsch aus, aber ich habe nicht viel geschlafen. Allerdings habe ich vor einigen Monaten eine dieser Funktionen - wahrscheinlich formatC()
- für einen Sweave-Bericht verwendet, in dem ich sehr speziell formatierte Zahlen brauchte.