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

R语言:如何按SL列数值范围分组并结合Rel类别可视化?

SL列区间分组与Rel可视化解决方案

1. 完成SL列的区间分组

用R内置的cut()函数即可实现精准区间划分,配合dplyr处理数据更简洁:

library(dplyr)

# 假设你的数据集名为df
df <- df %>%
  mutate(SL_group = cut(
    SL,
    breaks = c(0, 10, 20, 30, Inf),  # 设置分割点:0、10、20、30、无穷大
    labels = c("(0-10)", "(11-20)", "(21-30)", "(31+)"),  # 对应区间的显示标签
    right = FALSE  # 左闭右开规则,确保(0-10)包含0到10,(11-20)包含11到20,以此类推
  ))

如果SL列存在小于0的数值,可将breaks调整为c(-Inf, 0, 10, 20, 30, Inf),并补充对应标签(比如"(-∞-0)")。

2. 用ggplot2生成分组可视化

以适配多数示例图的箱线图为例,代码如下:

library(ggplot2)

ggplot(df, aes(x = SL_group, y = Rel)) +
  geom_boxplot(fill = "#2196F3", alpha = 0.7) +  # 可替换为geom_violin()生成小提琴图
  labs(
    x = "SL数值范围",
    y = "Rel数值",
    title = "不同SL区间下Rel的分布情况"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))  # 旋转x轴标签避免重叠

若需要添加统计元素(如均值点、误差线),可扩展代码:

ggplot(df, aes(x = SL_group, y = Rel)) +
  geom_boxplot(fill = "#2196F3", alpha = 0.7) +
  stat_summary(fun = mean, geom = "point", color = "#F44336", size = 3) +  # 添加红色均值点
  stat_summary(fun.data = mean_se, geom = "errorbar", width = 0.2) +  # 添加均值标准误误差线
  labs(x = "SL数值范围", y = "Rel数值", title = "不同SL区间下Rel的分布情况") +
  theme_minimal()

3. 常见问题修正

  • 分组顺序混乱:手动指定因子水平顺序,确保区间按逻辑排列:
df$SL_group <- factor(df$SL_group, levels = c("(0-10)", "(11-20)", "(21-30)", "(31+)"))
  • 出现NA分组:检查SL列的异常值(非数值、极端值),先用filter(!is.na(SL))清理无效数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 07:37:15