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

Why do logical operators negate their argument when there is only one argument in R?

当仅将单个向量传递给逻辑 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

当只传递一个参数时,为什么逻辑运算符否定他们的参数?

这个was modified in R 3.2.1 as a result of a bug report。正如您所指出的,之前的行为毫无意义: