You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中如何使用多条件if-then语句判断年龄范围?

在R语言中实现多条件性别-年龄范围判断

示例数据集

先构造符合需求的示例数据:

df <- data.frame(
  Sex = c("Male", "Female", "Male", "Female", "Male"),
  Age_OSM = c(10, 20, 16, 14, 7)
)

方法1:Base R 嵌套ifelse

直接用基础R的ifelse嵌套实现逻辑判断,生成标记列:

df$Condition_Met <- ifelse(
  df$Sex == "Male",
  # 男性判断逻辑:8 ≤ Age_OSM ≤15
  df$Age_OSM >= 8 & df$Age_OSM <= 15,
  # 女性判断逻辑:15 ≤ Age_OSM ≤25,非男非女默认标记为FALSE
  ifelse(df$Sex == "Female", df$Age_OSM >=15 & df$Age_OSM <=25, FALSE)
)

执行后查看结果:

print(df)
#      Sex Age_OSM Condition_Met
# 1   Male      10          TRUE
# 2 Female      20          TRUE
# 3   Male      16         FALSE
# 4 Female      14         FALSE
# 5   Male       7         FALSE

方法2:dplyr包的case_when(更简洁易读)

如果习惯用tidyverse工具链,case_when能让多条件逻辑更清晰,还可以用between简化范围判断:

library(dplyr)

df <- df %>%
  mutate(Condition_Met = case_when(
    Sex == "Male" ~ between(Age_OSM, 8, 15),
    Sex == "Female" ~ between(Age_OSM, 15, 25),
    TRUE ~ FALSE # 所有其他情况统一标记为FALSE
  ))

这个方法和base R的结果完全一致,但逻辑结构更直观,适合复杂多条件场景。


内容的提问来源于stack exchange,提问作者confusedindividual

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 15:12:41