2017-05-15 1 views
2

I momentan auf einem Datenrahmen arbeiten, die eine Spalte namens Markierung enthalten, die nur Wert 1 und 0.R - Änderungswert in Datenrahmen entsprechend seinen ursprünglichen Wert

Zum Beispiel

x1 | x2 | label 
0.1 0.2 1 
0.1 0.3 1 
0.2 0.5 0 

Wie kann ich den Wert in der Spalte Label konvertieren, indem wenn label = 1 dann ein Etikett wird und wenn label = 0 dann Etikett wird -1

Dies ist eine Struktur als i

x1 | x2 | label 
0.1 0.2 +1 
0.1 0.3 +1 
0.2 0.5 -1 
0 gesucht

Auch das Spaltenlabel ist derzeit ein numerischer Typ, ich muss es in Faktor ändern, um mit meinen Aufgaben fortzufahren.

Hier ist der Code für die Änderung zu Faktor.

df$label <- factor(df$label) 

Normalerweise würde ich eine for-Schleife ausführen, um es zu ändern. Manchmal würde es jedoch eine Situation geben, in der es viele Labels gibt, die dazu führen, dass ich eine lange for-Schleife schreibe, von der ich denke, dass sie nicht effektiv ist.

In diesem Fall wäre dies eine effektive Lösung.

Vielen Dank!

+0

Versuchen 'c (‘ zu ersetzen -1 ',' +1 ') [(df1 $ label + 1)] 'Oder verwenden Sie den' factor' approach 'factor (df1 $ label, lab els = c ('- 1', '+1')) ' – akrun

+0

du hast es, möchtest du deine Antwort posten ?, danke –

Antwort

2

Wir können dies tun, indem numerische Indizierung der Werte

c('-1', '+1')[(df1$label + 1)] 

Oder nutzen Sie das labels Argument in factor

factor(df1$label, labels = c('-1', '+1')) 

Oder mit ifelse

ifelse(df1$label>0, '+1', '-1') 
+1

Vielen Dank. –

Verwandte Themen