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

如何在R中汇总组外观测值?复现Gayle & Wu(2013)统计需求

解决方案

假设我们以2017年的ATL-AUS市场为例,以下是具体实现步骤:

步骤1:拆分市场的出发地与目的地

先将两个年份数据中的MARKET字段拆分为出发地(ORIGIN)和目的地(DEST),方便后续判断航司是否运营目标市场的端点:

# 加载必要包(未安装则先执行安装)
if (!require(tidyr)) install.packages("tidyr")
library(tidyr)

# 拆分2016年数据的市场字段
df_2016_split <- df_2016 %>%
  separate(MARKET, into = c("ORIGIN", "DEST"), sep = "-")

# 拆分2017年数据的市场字段(用于明确目标市场端点)
df_2017_split <- df_2017 %>%
  separate(MARKET, into = c("ORIGIN", "DEST"), sep = "-")

步骤2:提取关键航司集合

设定目标市场为ATL-AUS,提取两个核心航司集合:

# 目标市场的两个端点
target_origin <- "ATL"
target_dest <- "AUS"

# 集合1:2016年运营目标端点(ATL或AUS)的所有航司
carriers_endpoints <- unique(df_2016_split$AIRLINE[
  df_2016_split$ORIGIN %in% c(target_origin, target_dest) |
    df_2016_split$DEST %in% c(target_origin, target_dest)
])

# 集合2:2016年已进入目标市场(ATL-AUS)的所有航司
carriers_in_market <- unique(df_2016$AIRLINE[df_2016$MARKET == paste(target_origin, target_dest, sep = "-")])

步骤3:计算符合条件的航司数量

用端点运营航司集合减去已进入目标市场的航司集合,统计剩余航司的数量:

# 筛选符合条件的航司:运营端点但未进入目标市场
qualified_carriers <- setdiff(carriers_endpoints, carriers_in_market)

# 统计数量并输出
qualified_count <- length(qualified_carriers)
cat("符合条件的航空公司数量:", qualified_count, "\n")
cat("具体航司:", paste(qualified_carriers, collapse = ", "), "\n")

通用化函数(批量处理用)

如果需要批量计算2017年多个市场的结果,可以封装成函数:

count_qualified_carriers <- function(target_market, df_2016) {
  # 拆分目标市场的端点
  target_split <- strsplit(target_market, "-")[[1]]
  target_origin <- target_split[1]
  target_dest <- target_split[2]
  
  # 拆分2016年数据的市场字段
  df_2016_split <- separate(df_2016, MARKET, into = c("ORIGIN", "DEST"), sep = "-")
  
  # 提取运营端点的航司
  carriers_endpoints <- unique(df_2016_split$AIRLINE[
    df_2016_split$ORIGIN %in% c(target_origin, target_dest) |
      df_2016_split$DEST %in% c(target_origin, target_dest)
  ])
  
  # 提取已进入目标市场的航司
  carriers_in_market <- unique(df_2016$AIRLINE[df_2016$MARKET == target_market])
  
  # 返回符合条件的航司数量
  return(length(setdiff(carriers_endpoints, carriers_in_market)))
}

# 调用示例:计算2017年ATL-AUS市场的符合条件航司数量
count_qualified_carriers("ATL-AUS", df_2016)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:07:48