R中的OR表达式
我对R中的逻辑表达式感到难以置信的困惑。以下命令给出了预期结果,因为1等于1或等于2:R中的OR表达式,r,logical-operators,R,Logical Operators,我对R中的逻辑表达式感到难以置信的困惑。以下命令给出了预期结果,因为1等于1或等于2: > 1 == (1 | 2) [1] TRUE 但另一方面,我得到: 3 == (3 | 4) [1] FALSE 如果有人能对这里发生的事情有所了解,我将非常感激 请阅读问题下方的评论以获取解释。我想你真正想做的是: 1 == 1 | 1 == 2 这是TRUE,因为第一个测试是TRUE 3 == 3 & 3 == 4 这是FALSE,因为第二个测试是FALSE,&要求两个(或所有)测
> 1 == (1 | 2)
[1] TRUE
但另一方面,我得到:
3 == (3 | 4)
[1] FALSE
如果有人能对这里发生的事情有所了解,我将非常感激 请阅读问题下方的评论以获取解释。我想你真正想做的是:
1 == 1 | 1 == 2
这是TRUE
,因为第一个测试是TRUE
3 == 3 & 3 == 4
这是
FALSE
,因为第二个测试是FALSE
,&
要求两个(或所有)测试都是TRUE
不能将或
与数字一起使用。。在第一个语句1
interpent asT
中,您可以使用%中的%或(3==3 | 3==4)在控制台中尝试以下操作:(3 | 4)
<代码>(1 | 2)
<代码>1==真<代码>1==(3 | 4)<代码>0==假<代码>3==假3==TRUE
,等等。为了扩展@Batanichek所说的内容,TRUE
和FALSE
将在数字上下文中分别解释为1和0(例如,尝试作为.numeric(c(FALSE,TRUE))
或总和(c(TRUE,TRUE))
。对于带有数字的常规逻辑运算,您可以在%中使用%(例如,3%在%c(3,4)
中)。谢谢您的评论!%in%函数确实是我想要的。
3 == 3 & 3 == 4