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

R语言嵌套ifelse语句编写是否正确?分类结果异常问题求助

故障原因说明
  • 核心问题是变量名大小写拼写错误。R语言严格区分大小写,你代码中赋值的目标是大写开头的New数据框的var列,但嵌套ifelse的判断条件调用的是小写开头的new数据框的var1列。如果你的工作环境中不存在小写new对象、或new$var1的取值和你预期的New$var1完全不符,就会导致所有小于10的判断条件都不成立,最终全部落到兜底的"d"分类中。
  • 边界值遗漏是潜在隐患:当前判断逻辑没有覆盖var1等于10、等于20、等于30的情况,但你提到本该归为"a"的数值被错分,说明该问题不是本次故障的诱因。
  • 搭配which语句运行正常的原因:你在写which相关逻辑时,大概率写对了数据框名的大小写(比如调用的是New$var1而非new$var1),判断逻辑可以正常取到预期的数值,所以结果符合预期。
优化建议

可以改用dplyr::case_when简化多重条件判断的写法,避免嵌套ifelse的可读性问题,同时统一变量名拼写:

New$var <- dplyr::case_when(
  New$var1 < 10 ~ "a",
  New$var1 < 20 ~ "b",
  New$var1 < 30 ~ "c",
  TRUE ~ "d"
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:54:03