2016-05-26 2 views
1
an

Wenn ich einen dat.frame-Aufruf MyDF mit 108 Variablen habe und ich factor(MyDF[, OnColumns 8 to 100] anwenden möchte. Wie würde ich das tun?Wenden Sie eine Funktion auf alle Zeilen bestimmter Spalten in R

So in Pseudo-Code:

for(i=8, i < 101, i++) 
{ 
    # apply factor() to each column from 8 to 100 
    factor(MyDF[,i]) 
} 

Macht das Sinn?

+1

siehe [diese Antwort] iterieren factor über verwenden konvertiert werden müssen Faktor (http://stackoverflow.com/a/ 9252447/4137985) von [dieser Frage] (http://stackoverflow.com/questions/9251326/convert-data-frame-column-format-from-character-to-factor) – Cath

Antwort

5

Sie können einen Vektor mit den Spalten erstellen, und lapply diesen Spalten

tofactors <- 8:100 
df[,tofactors] <- lapply(df[,tofactors], factor) 
+0

Das ist der Trick, aber ich habe die Werte erwartet von 2 und 3 zu 0 und 1 umgewandelt werden, aber das waren sie nicht. Sie haben jetzt 2 Ebenen - aber die Werte sind 2 und 3, wie kann ich in 0 und 1 konvertieren – Gordon

+0

@Gordon Warum möchten Sie die Ebenen der Faktoren ändern? Das hat keinen Wert. – Sotos

+1

@Gordon, was Sie sehen, sind eigentlich die Etiketten. R speichert Faktoren als positive ganze Zahlen, so dass ihre tatsächlichen Werte 1 und 2 sind. Sie können wahrscheinlich "Faktor" die 0 und 1 Etiketten mit dem Label-Argument füttern. – lmo

Verwandte Themen