2016-04-07 12 views
1

Ich habe einen großen Datenrahmen mit über 40 Variablen verschiedener Klassen. Ungefähr die Hälfte der Variablen sind Zeichen, jedoch möchte ich diese Variablen zum Faktor zwingen, während die Ganzzahlen, logischen Werte usw. unverändert bleiben.r: Zwinge nur Zeichenvariablen zum Faktor, während andere Klassen verlassen werden

Ich habe versucht, unter einer einer lapply Funktion wie die Verwendung, aber es zwingt alle Variablen und nicht nur die Zeichen:

aframe2 <- as.data.frame(lapply(aframe1, factor)) 

Ich habe auch versucht as.data.frame(aframe1, stringsAsFactors=TRUE) ohne Erfolg. Gibt es etwas, das ich falsch mache, oder eine andere Funktion, die ich dazu verwenden kann?

Antwort

1

Dies könnte durch die Verwendung einer if/else Anweisung

aframe1[] <- lapply(aframe1, function(x) if(is.character(x)) factor(x) else x) 

oder erstellen Sie einen Index für factor Spalten und Schleife nur

auf dieser Spalt
i1 <- sapply(aframe1, is.character) 
aframe1[i1] <- lapply(aframe1[i1], factor) 
gelöst werden
Verwandte Themen