Почему логические операторы отрицают свой аргумент, когда в 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

почему логические операторы отрицают свой аргумент, когда передается только один аргумент?

1 ответов


этой был изменен в R 3.2.1 в результате сообщение об ошибке. Как вы уже отмечали, предыдущее поведение имело мало смысла:

enter image description here