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

使用dplyr统计各机场航空公司竞争对手数量的技术问询

解决方案:用dplyr统计各机场的航空公司竞争对手数量

核心思路

通过dplyr的分组+唯一值统计实现需求,无需使用count函数:

  • 按目标机场(出发/到达)分组
  • 用n_distinct()直接统计每组内不同航空公司的数量

代码实现(针对出发机场)

假设你的数据集名为flight_data,以下代码生成出发机场的竞争对手数量汇总表:

library(dplyr)

# 生成出发机场的航空公司竞争汇总表
origin_airport_competitors <- flight_data %>%
  # 按机场名称+ID分组,避免同名机场混淆
  group_by(origin, origin_airport_ID) %>%
  # 统计每个机场的唯一航空公司数量
  summarise(competitor_count = n_distinct(op_career), .groups = "drop")

# 查看结果
origin_airport_competitors

代码说明

  • group_by(origin, origin_airport_ID):同时绑定机场名称和ID,确保分组的唯一性
  • n_distinct(op_career):直接计算分组内的唯一航空公司数量,完全替代count的需求
  • .groups = "drop":完成统计后取消分组状态,输出整洁的二维汇总表

扩展:同时统计出发+到达机场

如果需要覆盖出发和到达两类机场,可通过长格式转换实现:

# 生成所有机场的航空公司竞争汇总表
all_airport_competitors <- flight_data %>%
  # 将出发/到达机场的字段转换为长格式
  pivot_longer(
    cols = c(origin, dest),
    names_to = "airport_role",
    values_to = "airport_name"
  ) %>%
  pivot_longer(
    cols = c(origin_airport_ID, dest_airport_ID),
    names_to = "airport_id_role",
    values_to = "airport_id"
  ) %>%
  # 按机场名称+ID分组
  group_by(airport_name, airport_id) %>%
  summarise(competitor_count = n_distinct(op_career), .groups = "drop")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:50:24