R中的OR表达式

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,&要求两个(或所有)测

我对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
&
要求两个(或所有)测试都是
TRUE

不能将
与数字一起使用。。在第一个语句
1
interpent as
T
中,您可以使用%中的
%或(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