Rundung der Ausgabe von by Funktion in R

7

Ich versuche eine Ausgabe von einer einfachen by() -Funktion in R zu runden. Das ist was ich habe:

%Vor%

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 .

    
Jb. 29.09.2009, 07:52
quelle

6 Antworten

10

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%     
hatmatrix 29.09.2009 12:00
quelle
6

round() macht in diesem Fall keinen Sinn, da Sie mit sehr großen Zahlen arbeiten. Sie möchten den Befehl format () verwenden und auswählen, wie viele Ziffern angezeigt werden sollen. Zum Beispiel, um 3 signifikante Ziffern anzuzeigen:

%Vor%     
Shane 30.09.2009 13:27
quelle
4
%Vor%

AKTUALISIEREN

Hier ist ein Arbeitsbeispiel:

%Vor%     
Rob Hyndman 29.09.2009 08:47
quelle
2

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%     
DamonJW 30.09.2009 13:58
quelle
1

Möchten Sie die Anzahl der angezeigten Ziffern runden oder abschneiden? Wenn letzteres, verwenden Sie Optionen (Ziffern = 3) oder was auch immer.

%Vor%     
Harlan 29.09.2009 17:45
quelle
1

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.

    
Matt Parker 29.09.2009 17:54
quelle

Tags und Links