【问题标题】:OR expression in RR中的OR表达式
【发布时间】:2015-12-11 06:33:30
【问题描述】:

我对 R 中的逻辑表达式感到非常困惑。以下命令给了我预期的结果,因为 1 等于 1 或等于 2:

> 1 == (1 | 2)
[1] TRUE

但另一方面我得到:

3 == (3 | 4)
[1] FALSE

如果有人能对这里发生的事情提供一些见解,我将不胜感激!

【问题讨论】:

  • 您不能将or 与数字一起使用。在第一个语句1 中插入T 您可以使用%in% 或(3 == 3 | 3== 4)
  • 在控制台中试试这些:(3 | 4);(1 | 2); 1 == TRUE; 1 == (3 | 4); 0 == FALSE; 3 == FALSE; 3 == TRUE
  • 只是为了扩展 @Batanichek 所说的内容,TRUEFALSE 在数字上下文中将分别解释为 1 和 0(例如,尝试 as.numeric(c(FALSE,TRUE))sum(c(TRUE, TRUE))) .对于带有数字的一般逻辑运算,您可以使用%in%(例如3 %in% c(3,4))。
  • 感谢您的 cmets! %in% 函数确实是我想要的。

标签: r logical-operators


【解决方案1】:

请阅读您的问题下方的 cmets 以获得解释。我猜你真正想做的是:

1 == 1 | 1 == 2

这是TRUE,因为第一个测试是TRUE

3 == 3 & 3 == 4

这是FALSE,因为第二个测试是FALSE,而& 要求两个(或所有)测试都是TRUE

【讨论】:

    猜你喜欢
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多