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

请教R语言中两段逻辑向量相关代码的差异及第二段代码含义

两段R代码的输出含义解析

原代码的作用

原代码按year, month, day分组后,计算的是当日延误航班的平均延误时长:

# Required packages
library(tidyverse)
library(nycflights13)

flights |> 
  group_by(year, month, day) |> 
  summarize(
    behind = mean(arr_delay[arr_delay > 0], na.rm = TRUE),
    n = n(),
    .groups = "drop"
  )
  • arr_delay[arr_delay > 0]:只筛选出当日所有**实际延误(到达延迟>0分钟)**的航班的延误时长数据
  • mean(..., na.rm = TRUE):对这些延误时长取平均值,同时忽略缺失值
  • 最终输出的behind是分钟数,代表当日延误航班的平均延误时间

修改后代码的输出含义

你修改后的代码,输出的是当日有效航班中延误航班的占比:

# Required packages
library(tidyverse)
library(nycflights13)

flights |> 
 group_by(year, month, day) |> 
 filter(!is.na(arr_delay)) |> 
  summarize(
      behind = mean(arr_delay > 0)
 )

关键逻辑:

  • filter(!is.na(arr_delay)):先剔除掉arr_delay有缺失值的航班,只保留有效记录
  • arr_delay > 0:对每个航班生成一个逻辑值——延误的航班返回TRUE,准点/提前的返回FALSE
  • 在R中,计算逻辑向量的均值时,TRUE会被自动转换为1,FALSE转换为0。因此mean(arr_delay > 0)本质是「当日延误航班数 ÷ 当日有效航班总数」,结果是0到1之间的比例值(比如0.2代表当日20%的航班延误)

两者核心差异

  • 原代码:聚焦延误航班群体,计算它们的平均延误时长(数值为分钟)
  • 修改后代码:聚焦当日所有有效航班,计算延误航班的占比(数值为比例)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 05:58:14