方括号中的多个条件语句

时间:2017-02-25 07:15:49

标签: r

有没有办法将多个条件语句放在R?

的方括号中

我试过像

这样的东西
dataframe$column1 [dataframe$column2 == "value2" || dataframe$column3 == "value3"] <- "value 1"

无济于事。

我知道我可以做两个连续的陈述,但我希望有更优雅的东西。

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) TRUEFALSE的数组行:

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