当R中只有一个参数时,为什么逻辑运算符要否定它们的参数?

当R中只有一个参数时,为什么逻辑运算符要否定它们的参数?,r,boolean-expression,R,Boolean Expression,仅将单个向量传递给逻辑and/or运算符时,运算符会对参数求反: > x = c(F,T,T) > `&`(x) [1] TRUE FALSE FALSE > `|`(x) [1] TRUE FALSE FALSE > `&`(x,T) [1] FALSE TRUE TRUE > `|`(x,F) [1] FALSE TRUE TRUE 要使逻辑运算符作为幂等元工作,需要传递一个元素向量作为第二个参数: > x = c(F,

仅将单个向量传递给逻辑and/or运算符时,运算符会对参数求反:

> x = c(F,T,T)
> `&`(x)
[1]  TRUE FALSE FALSE

> `|`(x)
[1]  TRUE FALSE FALSE
> `&`(x,T)
[1] FALSE  TRUE  TRUE

> `|`(x,F)
[1] FALSE  TRUE  TRUE
要使逻辑运算符作为幂等元工作,需要传递一个元素向量作为第二个参数:

> x = c(F,T,T)
> `&`(x)
[1]  TRUE FALSE FALSE

> `|`(x)
[1]  TRUE FALSE FALSE
> `&`(x,T)
[1] FALSE  TRUE  TRUE

> `|`(x,F)
[1] FALSE  TRUE  TRUE
当只有一个参数被传递时,为什么逻辑运算符要否定它们的参数呢?

这是逻辑运算符的结果。正如您所指出的,前面的行为毫无意义:


您可能认为“无效的一元运算符”是更合适的回答,例如,`
*
(3)`就是这样做的。您使用的是什么版本?因为我只在传递给“|”的| x:1参数中得到
错误,在您的一元示例中需要2
。“工作”(就像我得到这个奇怪的否定行为一样),我使用的是版本0.98.1103,这很可能是您的
Rstudio
版本。当前的
R
在主要版本
3.x.x
上。我有
R版本3.1.2(2014-10-31)
在osx上
x86_64,darwin13.4.0
@Pascal这是