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

R语言按gear_ratio区间分组计算MPG均值并实现分色绘图

你给出的聚合结果表中Gear_ratio列存在格式笔误(如2.2.26、2.2.47为非法数值),实际运算前需先修正为合法数值。

直接在aggregate中按区间分组的实现

完全可以在第一次调用aggregate时就完成区间分组计算,只需要用cut()函数对gear_ratio做分箱处理作为分组依据即可:

dfdata=data.frame(cars10)
# 定义区间边界和对应标签
gear_breaks <- c(2.0, 2.5, 3.0, 3.5, 4.0)
gear_labels <- c("2.0-2.5", "2.5-3.0", "3.0-3.5", "3.5-4.0")

# 一步完成按区间分组计算MPG均值
agg_interval <- aggregate(
  x = dfdata$mpg,
  by = list(gear_interval = cut(dfdata$gear_ratio, breaks = gear_breaks, labels = gear_labels, include.lowest = TRUE)),
  FUN = mean,
  na.rm = TRUE
)
# 重命名结果列
colnames(agg_interval) <- c("gear_interval", "mean_mpg")

参数include.lowest = TRUE用于保证区间左端点被包含在对应分组中,避免边界值(如2.5、3.0等)被错误归类。

分区间着色绘图实现

可以根据分组自定义配色,以下分别给出基础绘图和ggplot2的实现示例:

基础绘图(base plot)

# 自定义四个分组的颜色
group_colors <- c("#F8766D", "#7CAE00", "#00BFC4", "#C77CFF")
# 绘制柱状图
barplot(
  height = agg_interval$mean_mpg,
  names.arg = agg_interval$gear_interval,
  col = group_colors,
  xlab = "齿比区间",
  ylab = "平均MPG",
  main = "不同齿比区间的平均油耗表现"
)
# 添加图例
legend("topright", legend = agg_interval$gear_interval, fill = group_colors)

ggplot2绘图

library(ggplot2)
ggplot(agg_interval, aes(x = gear_interval, y = mean_mpg, fill = gear_interval)) +
  geom_col() +
  scale_fill_manual(values = group_colors) +
  labs(x = "齿比区间", y = "平均MPG", title = "不同齿比区间的平均油耗表现") +
  theme_minimal()

如果你已经提前计算了每个单独齿比的MPG均值,只需要对该结果的Gear_ratio列用同样的cut()逻辑做分箱,再做一次聚合即可得到区间维度的均值,但直接从原始数据计算的结果准确性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:57:03