了解R中的布尔运算

时间:2019-03-08 10:28:09

标签: r boolean

为什么以下操作会导致非布尔结果?

sum <- TRUE + FALSE
sum
[1] 1

如何获取布尔值的结果?

1 个答案:

答案 0 :(得分:1)

在R中,logical()FALSE的{​​{1}}值的数字表示分别为0和1。在添加这些内容时,它们会隐式转换为数字,因此TRUE将返回2,而TRUE+TRUE将返回0。

如果希望得到逻辑结果,请使用逻辑运算符TRUE-TRUE|

注意,R区分矢量化逻辑运算符和标量。 &|对一组有意义:&将返回c(FALSE,FALSE,TRUE) & c(TRUE,FALSE,TRUE)。而c(FALSE,FALSE,TRUE)仅返回c(FALSE,FALSE,TRUE) && c(TRUE,FALSE,TRUE)

要显式转换为逻辑,可以使用FALSE以非数字形式返回逻辑输出。