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

R语言查找分类变量最优、最差水平的代码正确性校验

代码校验结果

你编写的代码无法正确实现查找color变量最优、最差水平的需求,存在结果颠倒、实现逻辑冗余两个核心问题。

问题说明
  • 结果完全颠倒:diamonds数据集中的color是有序分类因子,内置水平顺序按字母序设置为D < E < F < G < H < I < J,但钻石颜色的实际业务等级规则是D为最优(完全无色)、J为最差(带明显黄色调),质量从优到劣排序为 D > E > F > G > H > I > J。你写的sort(diamonds$color, decreasing = TRUE)[1]实际返回最差水平J,并非你注释里标注的最优水平;sort(diamonds$color, decreasing = FALSE)[1]实际返回最优水平D,并非你注释里标注的最差水平。
  • 实现方式低效易错:你对全量53940条观测的color列做排序再取首元素的写法完全冗余,若后续遇到某个因子水平在数据集中无对应观测的场景,这种写法无法识别缺失水平,会直接返回错误结果。
正确实现代码

直接操作因子水平即可,不需要排序全量观测,运行效率更高、结果更稳定:

# 加载数据集(diamonds是ggplot2内置数据集,属于tidyverse核心组件)
library(ggplot2)
data(diamonds)

# 获取最优水平
best_color <- levels(diamonds$color)[1]
# 获取最差水平
worst_color <- tail(levels(diamonds$color), n = 1)

运行后可以得到:最优水平为D,最差水平为J,和钻石颜色的官方分级规则完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 23:09:41