R 布尔值(比较和逻辑运算符)

在 R 语言中,布尔变量只能取两个值:TRUEFALSE。例如,

# declare boolean x <- TRUE
print(x) print(class(x))
# declare boolean using single character y <- F
print(y) print(class(y))

输出

[1] TRUE
[1] "logical"
[1] FALSE
[1] "logical"

这里,我们将 xy 声明为布尔变量。在 R 语言中,布尔变量属于 logical 类。

你也可以使用单个字符声明布尔变量——TF。这里,T 代表 TRUEF 代表 FALSE


R 布尔值与比较运算符

比较运算符用于比较两个值。

运算符 描述 示例
> 大于 5 > 6 返回 FALSE
< 小于 5 < 6 返回 TRUE
== 等于 10 == 10 返回 TRUE
!= 不等于 10 != 10 返回 FALSE
>= 大于或等于 5 >= 6 返回 FALSE
<= 小于或等于 6 <= 6 返回 TRUE

比较的结果是一个布尔值。例如,要检查两个数字是否相等,可以使用 == 运算符。

x <- 10
y <- 23

# compare x and y
print(x == y) # FALSE

同样,要检查 x 是否小于 y,可以使用 < 运算符。

x <- 10
y <- 23

# compare x and y
print(x < y) # TRUE

由于存储在 x 中的值小于存储在 y 中的值,因此比较 x < y 的结果为 TRUE


R 布尔值与逻辑运算符

逻辑运算符用于比较两个比较的结果。R 语言中有三种逻辑运算符。它们是

  • AND 运算符 (&)
  • OR 运算符 (|)
  • NOT 运算符 (!)

AND 运算符 (&)

AND 运算符 & 接收两个逻辑值作为输入,并返回另一个逻辑值作为输出。

只有当两个输入逻辑值都为 TRUE 或都评估为 TRUE 时,运算符的输出才为 TRUE

ab 代表两个操作数。0 代表 FALSE1 代表 TRUE。那么,

a b a & b
1 1 1
1 0 0
0 1 0
0 0 0

例如,

# print & of TRUE and FALSE combinations
TRUE & TRUE
TRUE & FALSE
FALSE & TRUE
FALSE & FALSE

输出

[1] TRUE
[1] FALSE
[1] FALSE
[1] FALSE

任何逻辑运算符的输入也可以是两个或多个变量之间的比较。例如,

x <- 10
y <- 23
z <- 12

print(x<y & y>z)

输出

[1] TRUE

这里,条件检查 x 是否小于 y 并且 y 是否小于 z。如果两个条件都评估为 TRUE,则输出为 TRUE。如果其中任何一个为 FALSE,则输出为 FALSE


OR 运算符 (|)

OR 运算符 | 返回 TRUE,如果所有或任何一个逻辑输入为 TRUE 或评估为 TRUE。如果它们都为 FALSE,则返回 FALSE。请看下表。

a b a | b
1 1 1
1 0 1
0 1 1
0 0 0

例如,

# print | of TRUE and FALSE combinations
TRUE | TRUE
TRUE | FALSE
FALSE | TRUE
FALSE | FALSE

输出

[1] TRUE
[1] TRUE
[1] TRUE
[1] FALSE

这里,如果任何一个输入为 TRUE,则输出为 TRUE

与 AND 运算符类似,你可以使用任意数量的比较作为 OR 运算符的输入。例如,

w <- 54
x <- 12
y <- 25
z <- 1

print(w>x | x>y | z>w)

输出

[1] TRUE

这里,只有比较 w>x 评估为 TRUE。除此之外,所有其他比较都评估为 FALSE。由于至少一个输入为 TRUE,因此整个比较的输出为 TRUE


NOT (!) 运算符

NOT 运算符 ! 用于否定它所作用的逻辑值。如果输入值为 TRUE,它将变为 FALSE,反之亦然。

a !a
1 0
0 1

例如,

# print ! of TRUE and FALSE
!TRUE
!FALSE

输出

[1] FALSE
[1] TRUE

这里,输出是输入的否定。

我们可以将 ! 运算符与比较一起使用。例如,!(x > 12)x <= 12 相同。这意味着 x 不大于 12。这意味着 x 可以小于或等于 12


你还可以将 NOT 运算符与任何评估为布尔值的内置函数一起使用。例如,

x <- 3 + 5i

# using ! with in-built function
print(!is.numeric(x))

输出

[1] TRUE

这里,由于 xcomplex 类型,函数 is.numeric(x) 评估为 FALSE,而 FALSE 的否定是 TRUE,因此产生此输出。


示例:R 比较运算符和逻辑运算符

你可以将所有三个逻辑运算符与比较运算符一起使用。

x <- 5

print(is.numeric(x) & (x>5 | x==5))

输出

[1] TRUE

这里,我们可以将整个操作分为两部分——is.numeric(x)(x>5 | x==5)。由于它们之间有一个 AND 运算符,如果它们都评估为 TRUE,则输出才为 TRUE

该程序的运作方式如下

  • is.numeric(x) - 这评估为 TRUE,因为 xnumeric 类型
  • (x>5 | x==5) - 这评估为 TRUE,因为 x==5TRUE
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战