我有一个关于R语言中的或和与运算符的一般性问题。
在下面的示例中,我将一个值分配给2个变量x和y,并对它们进行一些逻辑运算。但是当我将表达式括在括号中时,结果会改变...我想知道这背后的逻辑是什么?例如:
在下面的示例中,我将一个值分配给2个变量x和y,并对它们进行一些逻辑运算。但是当我将表达式括在括号中时,结果会改变...我想知道这背后的逻辑是什么?例如:
x = 10
y = 2
# x or y is equal to 2
>x|y == 2
[1] TRUE
但是当我加上括号:
> (x|y) == 2
[1] FALSE
此外,如果我只检查x
:
> x|x == 2
[1] TRUE
> (x|x) == 2
[1] FALSE
同样地,对于 &
:
> x&y == 2
[1] TRUE
> (x&y)==2
[1] FALSE
我知道这可能是一个基础问题,但其逻辑并不像我最初想象的那样直观!我知道网上有很多关于这些操作符的资源.. 但似乎没有一个能够直接回答这种类型的问题。 我想知道这里到底发生了什么?
TRUE == 2
即> x|y# [1] TRUE
吗?|
返回TRUE,如果 'x'和 'y' 中的任何一个值为非零,而&
只有当两个都不为0时才返回TRUE。此外,如果没有括号,操作符是有优先级的。 - akrun