Menu
CoddyTech

向量化逻辑第 1 部分

本课属于 Coddy R 学习旅程的“基础知识”单元。第 20 课,共 78 课。

R 有两种版本的 AND 和 OR 运算符。你已经学过 && 和 ||,它们适用于单个值。现在来了解它们的向量化版本:& 和 |(单个符号)。

关键区别在于,处理多个值时,& 和 | 会逐个元素比较值:

a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)

a & b   # TRUE FALSE FALSE FALSE
a | b   # TRUE TRUE TRUE FALSE

每个位置都会单独进行比较。在第一个位置,a 和 b 都是 TRUE,所以 a & b 返回 TRUE。在第二个位置,a 是 TRUE,但 b 是 FALSE,所以 a & b 返回 FALSE。

将它与比较运算符结合使用时,功能会更强大:

scores <- c(85, 42, 91, 67, 55)

# 检查哪些分数在 50 到 80 之间
scores >= 50 & scores <= 80  # FALSE FALSE FALSE TRUE TRUE

结果是一个逻辑值向量,用于显示哪些元素同时满足两个条件。这种逐元素处理方式对于在 R 中筛选和分析数据至关重要。

challenge icon

挑战

简单

使用向量化的 AND(&)和 OR(|)运算符,对向量中的每个元素进行比较。

提供了以下向量:

temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)

使用向量化逻辑运算符创建以下逻辑向量:

  1. 创建名为 comfortable_temp 的向量,对于每个大于或等于 20 且小于或等于 30 的温度,存储 TRUE
  2. 创建名为 high_humidity 的向量,对于每个大于 70 的湿度值,存储 TRUE
  3. 创建名为 pleasant_day 的向量,对于温度在 20 到 30 之间(含边界)且湿度小于或等于 60 的每一天,存储 TRUE
  4. 创建名为 extreme_weather 的向量,对于温度大于 30 或湿度大于 80 的每一天,存储 TRUE
  5. 创建名为 stay_inside 的向量,对于温度小于 18 或(温度大于 30 且湿度大于 70)的每一天,存储 TRUE

使用 print() 函数,严格按照以下顺序显示 comfortable_temp、high_humidity、pleasant_day、extreme_weather 和 stay_inside。

亲手试试

# 已提供的向量
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)

# TODO:在下面编写你的代码
# 1. 创建 comfortable_temp:当 temp >= 20 AND temp <= 30 时为 TRUE

# 2. 创建 high_humidity:当 humidity > 70 时为 TRUE

# 3. 创建 pleasant_day:当 temp 为 20-30 且 humidity <= 60 时为 TRUE

# 4. 创建 extreme_weather:当 temp > 30 OR humidity > 80 时为 TRUE

# 5. 创建 stay_inside:当 temp < 18 OR (temp > 30 AND humidity > 70) 时为 TRUE


# 打印结果
print(comfortable_temp)
print(high_humidity)
print(pleasant_day)
print(extreme_weather)
print(stay_inside)
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: R 在线编译器