2016-09-22 8 views
0

は、次の通りであるデータフレームDFで:Rに複数の英数字を代入する方法は?

DF$Values 

Values 
B1 
A 
A2 
B 
B2 
A1 
C2 
C1 
C 

私はそうでGroup3としてGroup1などA2,B,B2Group2としてB1,C2,C1,C、およびA1, Aを代用します。コード gsub("A1|A", "Group3" ,DF)Group32

A2に取って代わるよう助けてください、出力データはこの

Values 
Group2 
Group3 
Group1 
Group1 
Group1 
Group3 
Group2 
Group2 
Group2 

ようになっていることをこのような私はgsub()を使用してみましたが、それは私のために正常に動作していません!

答えて

0

%in%ifelseを行うことができます(OPの特定のパターンがあるかどうかは不明です)、要素を別のものにコード化することができます。

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

ありがとう!!それは私のために働いた:) –

1

各グループの因子レベルを作成する方法はありますか?

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 
関連する問題