R 判断语句的基本结构
R语言中的判断语句主要通过if、else if和else组合实现条件分支逻辑。基本语法如下:
if (condition1) {
# 条件1为TRUE时执行的代码
} else if (condition2) {
# 条件2为TRUE时执行的代码
} else {
# 其他情况执行的代码
}
单一条件判断示例
检查变量是否大于阈值:
x <- 10
if (x > 5) {
print("x大于5")
}
多条件分支示例
根据分数划分等级:
score <- 85
if (score >= 90) {
grade <- "A"
} else if (score >= 80) {
grade <- "B"
} else if (score >= 70) {
grade <- "C"
} else {
grade <- "D"
}
print(paste("等级为:", grade))
向量化条件判断
使用ifelse()处理向量数据:
values <- c(-2, 0, 5, 10)
result <- ifelse(values > 0, "正数", "非正数")
print(result)
复合逻辑条件
组合多个逻辑运算符:
age <- 25
income <- 50000
if (age >= 18 & income > 30000) {
print("符合贷款条件")
}
Switch 语句替代方案
使用switch()处理多分支选择:
day <- "Wednesday"
day_type <- switch(day,
"Monday" = "工作日",
"Tuesday" = "工作日",
"Wednesday" = "工作日",
"Thursday" = "工作日",
"Friday" = "工作日",
"周末"
)
print(day_type)
嵌套条件语句示例
多层嵌套的条件判断:
temp <- 28
humidity <- 0.7
if (temp > 30) {
if (humidity > 0.6) {
print("高温高湿天气")
} else {
print("高温干燥天气")
}
} else {
print("适宜温度")
}
条件语句中的函数调用
在条件中调用函数:
is_even <- function(x) x %% 2 == 0
num <- 4
if (is_even(num)) {
print(paste(num, "是偶数"))
}
注意事项
逻辑判断中需注意浮点数比较:
# 错误的比较方式
sqrt(2)^2 == 2 # 返回FALSE
# 正确方式
abs(sqrt(2)^2 - 2) < 1e-9 # 返回TRUE
性能优化技巧
对于大数据集条件判断,使用data.table或dplyr的向量化操作:
library(dplyr)
df <- data.frame(x = 1:1000000)
df <- df %>% mutate(category = ifelse(x %% 2 == 0, "偶数", "奇数"))
5886

被折叠的 条评论
为什么被折叠?



