有没有办法将多个条件语句放在R?
的方括号中我试过像
这样的东西dataframe$column1 [dataframe$column2 == "value2" || dataframe$column3 == "value3"] <- "value 1"
无济于事。
我知道我可以做两个连续的陈述,但我希望有更优雅的东西。
答案 0 :(得分:1)
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运算符分隔的语句,如果语句匹配,它会返回length(dataframe)
TRUE
或FALSE
的数组行:
dataframe$column2 == 2 | dataframe$column3 == 4
[1] TRUE TRUE FALSE
通过在括号内调用此语句,我们指向对应的行:
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