R 中的逻辑运算符

R 编程中的逻辑运算符可用于组合两个或多个条件,并使用 &(逻辑与)、|(逻辑或)和 !(逻辑非)执行逻辑运算。

比较运算符可用于比较两个变量,如果我们想比较多个条件呢?非常简单,R 逻辑运算符可以为您完成。

下表描述了逻辑运算符。

运算符名称描述示例
&AND当两个条件都为真时,它返回真c(20, 30) & c(30, 10)
&&AND与上面相同,但它作用于单个元素If (age > 18 && age <= 25)
|OR与逻辑或相同,但它作用于单个元素c(20, 30) | c(30, 10)
||OR如果条件为真,则逻辑非运算符返回假If (age == 35 || age < 60)
!NOT与上面相同,但它作用于单个元素如果 age = 18,则 !( age = 18) 返回 false。

让我们看看这个编程中逻辑运算符背后的真值表,以便更好地理解

逻辑与真值表

R 逻辑与运算符背后的真值表如下所示

条件 1条件 2条件 1 && 条件 2

逻辑或真值表

编程逻辑或运算符背后的真值表如下所示

条件 1条件 2条件 1 || 条件 2

R 中的基本逻辑运算符示例

此示例可帮助您了解此编程中的逻辑运算符如何在 If 语句中使用。

对于这个逻辑运算符示例,我们分配了一个整数变量。然后,在 If 语句中,我们使用基本逻辑运算符,如 &&、|| 和 !。请参考 R 中的比较运算符文章。

# Logical Operators example

age <- 16
if (!(age > 18)) {
print("You are Too Young")
} else if(age > 18 && age <= 35) {
print("Young Guy")
} else if(age == 36 || age <= 60) {
print("You are Middle Age Person")
} else {
print("You are too Old")
}

从下面的屏幕截图中,您可以看到我们输入了 age = 16。这意味着年龄不大于 18,因此第一条语句将被打印。

Logical Operators in R Programming 1

让我们看看当我们更改值时会发生什么。从下面的屏幕截图中,可以看到我们输入了 age = 29。这意味着年龄在 18 到 35 之间,因此第二条语句将被打印。

"Young Guy"

从下面的屏幕截图中,可以看到我们输入了 age = 45。这意味着年龄在 36 到 60 之间,因此第三条语句将打印输出。

"You are Middle Age person"

从下面的屏幕截图中,可以看到我们输入了 age = 72。

Logical Operators 4

R 逻辑运算符示例

此示例可帮助您了解每个逻辑运算符的工作原理。请记住,任何大于零的正整数值都被视为布尔 TRUE,而 0 被视为布尔 FALSE。

# Logical Operators example

num1 <- c(TRUE, FALSE, 0, 23)
num2 <- c(FALSE, FALSE, TRUE, TRUE)

# Performs AND operation on each element in both num1, num2
num1 & num2

# Performs AND operation on first element in both num1, num2
num1 && num2

# Performs OR operation on each element in both num1, num2
num1 | num2

# Performs OR operation on first element in both num1, num2
num1 || num2

This will convert all the num1 TRUE values to FALSE, and FALSE values to TRUE
!num1

# From num2 Vector - This will convert all the TRUE values to FALSE, and FALSE to TRUE
!num2
Logical Operators 5

在这些逻辑运算符示例中,首先,我们声明了两个向量

num1 <- c(TRUE, FALSE, 0, 23)
num2 <- c(FALSE, FALSE, TRUE, TRUE)

以下语句比较每个向量元素并查找逻辑关系。

num1 & num2

以下语句比较 num1 向量的第一个元素和 num2 向量的第一个元素。这意味着 TRUE && FALSE = FALSE。

num1 && num2