2017-02-25 8 views
-2

複数の条件文をRの角括弧に入れる方法はありますか?角括弧で囲まれた複数の条件文

私は無駄に

dataframe$column1 [dataframe$column2 == "value2" || dataframe$column3 == "value3"] <- "value 1" 

のようなものを試してみました。

私は2つの連続した文を作ることができますが、私はよりエレガントなものを望んでいました。

答えて

0
dataframe$column1[dataframe$column2 == "value2" | dataframe$column3 == "value3"] <- 
"value 1" 

は、私は我々のテストデータフレームで再現可能な例を挙げてこれを説明してみましょう:

dataframe <- data.frame(column1 = 1:3, column2 = 2:4, column3 = 3:5) 

dataframe 

     column1 column2 column3 
1  1  2  3 
2  2  3  4 
3  3  4  5 

私はR |で論理OR演算子で区切られた2つの文を持っている場合、それはの配列を私に戻っていますこれを呼び出すことによって

dataframe$column2 == 2 | dataframe$column3 == 4 
[1] TRUE TRUE FALSE 

ね:TRUEまたはFALSElength(dataframe)文が行と一致した場合我々は特派行を指すカッコ内tatement:

dataframe$column1[dataframe$column2 == 2 | dataframe$column3 == 4] 

COLUMN1の値を返します。

[1] 1 2 

我々は今、これらの値を上書きすることができます。

dataframe$column1[dataframe$column2 == 2 | dataframe$column3 == 4] <- 4 

ついに

dataframe 

     column1 column2 column3 
1  4  2  3 
2  4  3  4 
3  3  4  5 
+0

詳細をご説明ください。コードだけではあまり役に立ちません。 – Uwe

関連する問題