向量化逻辑第 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 中筛选和分析数据至关重要。
挑战
简单使用向量化的 AND(&)和 OR(|)运算符,对向量中的每个元素进行比较。
提供了以下向量:
temperatures <- c(18, 25, 32, 15, 28, 35, 22)
humidity <- c(45, 80, 60, 30, 75, 85, 50)使用向量化逻辑运算符创建以下逻辑向量:
- 创建名为
comfortable_temp的向量,对于每个大于或等于 20 且小于或等于 30 的温度,存储TRUE - 创建名为
high_humidity的向量,对于每个大于 70 的湿度值,存储TRUE - 创建名为
pleasant_day的向量,对于温度在 20 到 30 之间(含边界)且湿度小于或等于 60 的每一天,存储TRUE - 创建名为
extreme_weather的向量,对于温度大于 30 或湿度大于 80 的每一天,存储TRUE - 创建名为
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)这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: R 在线编译器