2017-02-25 27 views
-2

是否有任何方法可以將多個條件語句放在R中的方括號中?方括號中的多個條件語句

我想是這樣

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

無濟於事。

我知道我只能做兩個連續的陳述,但我希望有更優雅的東西。

回答

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 

如果我有邏輯OR運算符中的R |分開的兩個語句它給我回的數組通過調用這個S

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

length(dataframe)TRUEFALSE如果語句行匹配括號內tatement我們指向記者行:

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

返回列1的值:

[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