Wie konvertiert man das gesamte Datenfeld in einen numerischen Wert, während Dezimalzahlen erhalten bleiben?

9

Ich habe einen gemischten Klassen-Datenrahmen (numerisch und Faktor), wo ich versuche, den gesamten Datenrahmen in numerisch zu konvertieren. Im Folgenden werden die Art der Daten, mit denen ich arbeite, sowie das Problem, dem ich begegne, veranschaulicht:

%Vor%

Wenn ich versuche, den gesamten Datenrahmen in einen numerischen Wert zu konvertieren, werden die numerischen Werte geändert. Zum Beispiel:

%Vor%

Vorherige Beiträge auf dieser Seite empfehlen die Verwendung von as.numeric(as.character(df1$a)) , was für eine Spalte sehr gut ist. Ich muss diesen Ansatz jedoch auf einen Datenrahmen anwenden, der Hunderte von Spalten enthalten kann.

Welche Optionen habe ich, um einen vollständigen Datenrahmen von Faktor in numerisch zu konvertieren und dabei die numerischen Dezimalwerte beizubehalten?

Folgendes ist die Ausgabe, die ich erzeugen möchte, wo a und b numerisch sind:

%Vor%

Ich habe die folgenden verwandten Posts gelesen, obwohl keiner von ihnen direkt auf diesen Fall zutrifft:

  1. Wie konvertiert man a Faktorvariable auf numerisch, während der Wert beibehalten wird Zahlen in R Dies verweist auf eine einzelne Spalte in einem Datenrahmen.
  2. Umwandlung von einem Zeichen in einen numerischen Datenrahmen . Dieser Beitrag Dezimalwerte werden nicht berücksichtigt.
  3. Wie kann ich einen Faktor konvertieren? Spalte, die Dezimalzahlen enthält numerisch? . Dies gilt nur für eine Spalte in einem Datenrahmen.
Borealis 15.10.2014, 20:54
quelle

4 Antworten

7

Sie müssen möglicherweise etwas überprüfen. Sie können Faktoren nicht direkt in Zahlen umwandeln. as.character muss zuerst angewendet werden. Andernfalls werden die Faktoren in ihre numerischen Speicherwerte konvertiert. Ich würde jede Spalte mit is.factor überprüfen und dann bei Bedarf zu numerisch wechseln.

%Vor%     
Rich Scriven 15.10.2014, 20:57
quelle
2

Mit dplyr (ein bisschen wie sapply ..)

%Vor%

was ergibt:

%Vor%

von Ihrem df1, das war:

%Vor%     
R. Prost 24.01.2018 09:43
quelle
1
%Vor%     
Jilber Urbina 15.10.2014 20:56
quelle
1
%Vor%     
n8sty 15.10.2014 20:58
quelle

Tags und Links