2017-04-03 9 views
0

Dies ist mein Daten-Set:Ersetzen Werte eines Faktors Variable in einer Spalte eines Datenrahmens mit einem vorhandenen Wert dieser Spalte

codes<-c("a1", "b1", "c1", "a2", "b2", "c2", "a3", "b3", "c3") 
dt= data.frame(codes) 

Jetzt möchte ich „a1“, „a2“ und „a3 ersetzen "Mit einem anderen bestehenden Wert sagen" c3 ". Als neue R, ich kenne einen einzelnen Wert in einer Spalte zu ersetzen, wie in diesem Fall würde mein Code sein:

dt$codes[dt$codes== “a1”] <- c3 

Aber da ich hier mehr als einen Wert ersetzen müssen, ich bin zu denken lösen es so die oDER-Logik mit dem a1 oder Codes = Codes = a2 oder Codes = a3

dt$codes[dt$codes== “a1” || “a2” || “a3”] <- “c3” 

Offensichtlich meine Codes hier einige Syntaxfehler werfen. Ich denke, dass die Verwendung des OR-Ansatzes hier möglicherweise nicht korrekt ist. Gibt es also einfache Möglichkeiten, die Werte einer Spalte durch einen bereits vorhandenen Wert in dieser Spalte zu ersetzen? Dank

Antwort

1

Wir %in%

dt$codes[dt$codes %in% c('a1', 'a2', 'a3')] <- 'c3' 

verwenden können, wie es factor Klasse ist, wäre effizienter Ansatz zuzuordnen sein mit levels

levels(dt$codes)[levels(dt$codes) %in% c('a1', 'a2', 'a3')] <- 'c3' 
Verwandte Themen