Beliebige Möglichkeit, alle Variablenklassen in einem Datenrahmen automatisch zu korrigieren

8

Ich habe einen Datenrahmen mit ungefähr ~ 250 Variablen. Leider wurden alle diese Variablen als Zeichenklassen aus einer SQL-Datenbank mit sqldf importiert. Das Problem: Alle sollten keine Charakterklassen sein. Es gibt numerische Variablen, ganze Zahlen sowie Daten. Ich möchte ein Modell erstellen, das über alle Variablen läuft, und dazu muss ich sicherstellen, dass die Variablen die richtigen Klassen haben. Tun es eins nach dem anderen ist wahrscheinlich am besten, aber immer noch sehr manuell.

Wie kann ich automatisch alle Klassen korrigieren? Vielleicht eine Möglichkeit zu erkennen, ob es alphabetische Zeichen in der Spalte oder nur Zahlenzeichen gibt?

Ich glaube nicht, dass ein automatischer Ansatz perfekt ist, um alle Klassen zu korrigieren. Aber es könnte die meisten Klassen korrigieren, dann diejenigen, die nicht gut sind, kann ich manuell auf sie aufpassen.

Ich füge ein sqldf-Tag hinzu, falls jemand weiß, wie man das beim Import der Daten korrigieren kann, aber ich nehme an, es ist nicht sqldfs Fehler, sondern die Datenbank.

    
jgozal 04.01.2016, 20:18
quelle

1 Antwort

8

Am ehesten würde die automatische Umwandlung eines Datenrahmens in einen Datenrahmen wahrscheinlich

sein %Vor%

Dabei ist df Ihr Datensatz. Die Funktion type.convert()

  

Konvertiert einen Zeichenvektor nach Bedarf in logisch, ganzzahlig, numerisch, komplex oder Faktor.

Lesen Sie help(type.convert) , es könnte genau das sein, was Sie wollen.

Nach meiner Erfahrung ist type.convert() sehr zuverlässig. Sie können as.is = TRUE verwenden, wenn Sie nicht möchten, dass Zeichen zu Faktoren gezwungen werden. Außerdem wird es intern in vielen wichtigen R-Funktionen verwendet (wie read.table ), also ist es definitiv sicher.

Hier ist ein kurzes Beispiel für die Arbeit an iris . Zuerst ändern wir alle Spalten in Zeichen und führen dann type.convert() darauf aus.

%Vor%

Wir können sehen, dass die Spalten in ihre ursprünglichen Klassen zurückgegeben wurden. Dies liegt daran, dass type.convert() die Spalten auf den Typ "am besten geeignet" umstellt.

    
Rich Scriven 04.01.2016, 20:35
quelle

Tags und Links