Ich habe eine data.frame, die Spalten verschiedener Typen enthält, wie z. B. Integer, Zeichen, numerische und Faktor.Eine elegante Möglichkeit zum Ändern von Spalten geben Datenrahmen in R
Ich muss die Integer-Spalten für die Verwendung im nächsten Schritt der Analyse in numerische konvertieren.
Beispiel: test.data
enthält 4 Spalten (obwohl es Tausende in meinem realen Datensatz ist): age
, gender
, work.years
und name
; age
und work.years
sind ganze Zahlen, gender
ist Faktor, und name
ist Zeichen. Was ich tun muss, ist age
und work.years
in einen numerischen Typ zu ändern. Und ich habe einen Code dafür geschrieben.
test.data[sapply(test.data, is.integer)] <-lapply(test.data[sapply(test.data, is.integer)], as.numeric)
Es sieht nicht gut genug aus, obwohl es funktioniert. Ich frage mich also, ob es elegantere Methoden gibt, diese Funktion zu erfüllen. Jede kreative Methode wird geschätzt.
Haben Sie andere Arten müssen jeweils zu konvertierenden Klassen ? Ansonsten sieht Ihre Option gut genug aus. Anderen Weg wäre 'test.data [] <- lapply (test.data, Funktion (x) if (is.integer (x)) as.numeric (x) sonst x)' – akrun
@akrun danke für die Antwort zuerst! Nein, in der Situation muss ich nur die Ganzzahl in numerische konvertieren und die anderen Typen ohne Änderung beibehalten. – wanglin
Okay, in diesem Fall wäre entweder Ihr Weg oder der, den ich in den Kommentaren zeigte, gut genug. – akrun