在R中使用&(例如3 <(5&9))

use*_*366 4 r logical-operators

我正在努力学习R并理解&符号是如何工作的.我理解它的意思是'和'.

当我尝试时,3 < (5 & 4)我得到了FALSE?我在期待TRUE.我用&错了方法吗?

Tim*_*sen 6

在R中TRUE计算出1算术表达式中的数字,因此:

3 < (5 & 4)
3 < TRUE
3 < 1
Run Code Online (Sandbox Code Playgroud)

是的 FALSE

你可以说服自己的R对待TRUE如1下面的代码片段:

> x <- c(-3:3)
> x
[1] -3 -2 -1  0  1  2  3
> x == TRUE
[1] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)

  • 最初它实际上是`as.logical(5)`和`as.logical(4)`,它们都返回`TRUE` (3认同)

nog*_*pes 5

我认为你的陈述意味着我们如何用英语说"3还不到5和4?".但这不是什么3 < (5 & 4)意思.正如在其他答案中所解释的那样,R试图弄清楚(5和4)首先意味着什么,然后试图找出3对于小于的意义TRUE.我想你想要的是:

(3 < 4) & (3 < 5)
Run Code Online (Sandbox Code Playgroud)

另一种说法是:

all(3 < c(4,5))
Run Code Online (Sandbox Code Playgroud)