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

如何用for循环筛选向量值,统计nycflights13各航司各目的地提前到港航班数

实现方案

前置依赖

首先加载所需包并完成你已有的预处理逻辑:

library(nycflights13)
library(dplyr)

# 你已写的预处理代码
AL <- unique(flights$carrier)
LOC <- unique(flights$dest)
EARLYBIRD <- filter(flights, arr_delay < 0)

for 循环实现逻辑

你需要先初始化一个空结果数据框,再通过两层循环遍历所有目的地、航司组合,逐次计算后追加结果:

# 初始化空结果表,指定列类型避免拼接时报错
result <- data.frame(
  dest = character(),
  carrier = character(),
  count = integer(),
  stringsAsFactors = FALSE
)

# 第一层循环:遍历所有目的地
for (current_dest in LOC) {
  # 筛选当前目的地的提前到港航班
  dest_filtered <- filter(EARLYBIRD, dest == current_dest)
  # 第二层循环:遍历所有航司
  for (current_carrier in AL) {
    # 筛选当前航司的航班
    carrier_filtered <- filter(dest_filtered, carrier == current_carrier)
    # 构造当前统计行
    current_row <- data.frame(
      dest = current_dest,
      carrier = current_carrier,
      count = nrow(carrier_filtered),
      stringsAsFactors = FALSE
    )
    # 追加到结果表
    result <- rbind(result, current_row)
  }
}

# 可选:过滤掉没有符合条件航班的组合
result <- filter(result, count > 0)

更高效的推荐写法(无需循环)

实际R语言处理这类分组统计问题,直接用dplyr的分组汇总语法效率更高、代码更简洁:

result <- EARLYBIRD %>%
  group_by(dest, carrier) %>%
  summarise(count = n(), .groups = "drop")

运行得到的result表和你要的for循环输出结构完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:36:04