当 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。正如您所指出的,之前的行为毫无意义:
当仅将单个向量传递给逻辑 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。正如您所指出的,之前的行为毫无意义: