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

R脚本实现按Vertical分组的Subvertical AHT Top5与末5排名添加咨询

R代码实现Subvertical排名标注解决方案

1. 调整数据处理逻辑新增排名列

直接修改原有Subvertical数据处理段的代码,在汇总指标后新增排名逻辑即可,调整后代码如下:

data_process.subvertical <- data_process %>% 
  select(DATE, Vertical, Subvertical, AHT, total) %>%
  dplyr::group_by(DATE, Vertical, Subvertical) %>%
  dplyr::summarise(AHT = mean(AHT, na.rm = T), total = sum(total)) %>% 
  # 按日期+一级维度Vertical分组,做组内Subvertical排名
  dplyr::group_by(DATE, Vertical) %>%
  # 按AHT升序排名,若需AHT越高排名越靠前,将AHT替换为desc(AHT)即可
  dplyr::mutate(aht_rank = dplyr::min_rank(AHT),
                sub_total = n(), # 取当前分组下Subvertical总数量
                rank_label = dplyr::case_when(
                  aht_rank <= 5 ~ paste0("Top", aht_rank),
                  aht_rank >= (sub_total - 4) ~ paste0("末", sub_total - aht_rank + 1),
                  TRUE ~ "其他"
                )) %>%
  dplyr::ungroup() %>%
  # 调整列顺序,将排名标签列放在total列之后,符合需求
  dplyr::relocate(rank_label, .after = total)

备注:上述代码默认是按「每月+每个Vertical」维度做排名,如果需要用全时间段的平均AHT做Vertical下的统一排名,只需要将dplyr::group_by(DATE, Vertical)中的DATE去掉即可。

2. (可选)可视化适配排名逻辑

如果需要在折线图中高亮Top5、末5的Subvertical趋势,可以调整原有绘图函数的代码:

v <- ("Adult")  ##change vertical here
subvert.aht <- function(Vertical) {  
  filter1 <- data_process.subvertical %>%
    dplyr::filter(Vertical == !!Vertical)
  if(nrow(filter1) == 0) {
    print("无对应Vertical数据")
  } else {
    line_chart_cs <- ggplot2::ggplot(filter1, aes(x = DATE, y = AHT, colour = Subvertical, linewidth = rank_label != "其他")) +
      ggplot2::geom_line() +
      # 排名列非「其他」的线条加粗显示
      scale_linewidth_manual(values = c("TRUE" = 1.2, "FALSE" = 0.6), guide = "none") +
      scale_x_date(breaks = unique(filter1$DATE)) +
      theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1),
            panel.grid.major = element_blank(),
            panel.grid.minor = element_blank(),
            panel.background = element_blank(),
            axis.line = element_line(colour = "black"),legend.position = "bottom" ) +
      ggtitle(paste("Monthly AHT -", Vertical, "by Subvertical"))
    return(line_chart_cs)
  }
}

subvert.aht(v)

内容的提问来源于stack exchange,提问作者V.Germano

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:45:03