2016-09-22 2 views
0

In einem Datenrahmen DF, die wie folgt lautet:Wie ersetzen Sie mehrere alphanumerische Zeichen in R?

DF$Values 

Values 
B1 
A 
A2 
B 
B2 
A1 
C2 
C1 
C 

Ich möchte A2,B,B2 als Group1, ersetzen B1,C2,C1,C als Group2 und A1, A als Group3 und so weiter. Derart, dass die Ausgangsdaten wie dies

sehen
Values 
Group2 
Group3 
Group1 
Group1 
Group1 
Group3 
Group2 
Group2 
Group2 

ich mit gsub() versucht, aber es ist nicht richtig für mich arbeiten, wie der Code gsub("A1|A", "Group3" ,DF) ersetzt A2 mit Group32

Bitte um Hilfe!

Antwort

0

Wir können eine ifelse mit %in% (es ist nicht klar, ob es bestimmte Muster aus dem OP-Post gibt), um die Elemente zu anderen zu rekodieren.

with(DF, ifelse(Values %in% c("A2", "B", "B2"), "Group1", 
     ifelse(Values %in% c("B1", "C2", "C1", "C"), "Group2", "Group3"))) 
#[1] "Group2" "Group3" "Group1" "Group1" "Group1" "Group3" "Group2" "Group2" "Group2" 
+1

Danke !! es hat für mich funktioniert :) –

1

Wie wäre es mit der Erstellung von Faktorstufen für jede Gruppe?

df$Values <- as.factor(df$Values) 
levels(df$Values) <- list(Group1= c("A2","B","B2"), Group2= c("B1","C2","C1","C"), 
                Group3 = c("A1", "A")) 
df$Values 
#[1] Group2 Group3 Group1 Group1 Group1 Group3 Group2 Group2 Group2 
#Levels: Group1 Group2 Group3 
Verwandte Themen