R语言条件判断全攻略

R 判断语句的基本结构

R语言中的判断语句主要通过ifelse ifelse组合实现条件分支逻辑。基本语法如下:

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.tabledplyr的向量化操作:

library(dplyr)
df <- data.frame(x = 1:1000000)
df <- df %>% mutate(category = ifelse(x %% 2 == 0, "偶数", "奇数"))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值