2017-04-03 1 views
0

の既存の値を持つデータフレームの列に因子変数の値を置き換えるこれは私のデータセットです。は、その列

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

今、私は「A1」、「A2」と「A3を交換したいです既存の別の値は「c3」と言います。 Rへの新たなように、私はこの場合のように、私のコードは次のようになり、カラム内の単一の値を置き換えるために知っている:

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

しかし、私はここに複数の値を交換する必要があるので、私が考えていますコード=

A3 = A1またはコード= A2またはコード
dt$codes[dt$codes== “a1” || “a2” || “a3”] <- “c3” 

は明らかに私のコードはここにいくつかの構文エラーを投げるところORロジックを使用して、このようにそれを解決します。私は、ORのアプローチを使用してここで正しいかもしれないと思っています。その列の値を既存の値で置き換える簡単な方法はありますか?おかげ

答えて

1

は、我々はそれがfactorクラスであるため、より効率的なアプローチがlevels

levels(dt$codes)[levels(dt$codes) %in% c('a1', 'a2', 'a3')] <- 'c3' 
を使用して割り当てることであろう %in%

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

を使用することができます

関連する問題