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

如何用dplyr统计F1赛事起步领跑最终夺冠的相对频率

实现方案

首先安装并加载所需依赖包:

# 安装依赖包(仅首次运行需要)
install.packages(c("dplyr", "tidyr", "readr"))

# 加载包
library(dplyr)
library(tidyr)
library(readr)

数据读取

使用你提供的url直接读取数据集:

url <- paste0("https://10d9b011-755b-4b59-9f64-dbfb2ae95d87.filesusr.com/",
              "ugd/0c24ab_a29a977ec1404b69bf7cc34fcc58b073.csv?",
              "dn=Aus%20GP%20Lap%20Data.csv")
f1_data <- read_csv(url)

统计实现

stat_result <- f1_data %>%
  # 仅保留第1圈和最后一圈的记录,过滤无效数据
  filter(lap %in% c(1, 58)) %>%
  # 按年份、车手分组,避免跨赛事/跨车手的记录混淆
  group_by(Year, driverId) %>%
  # 仅保留同一年同时有第1圈、第58圈记录的车手(排除未完赛车手)
  filter(n() == 2) %>%
  # 长表转宽表,把圈数转为列名,对应排名作为列值
  pivot_wider(names_from = lap, values_from = position, names_prefix = "lap_") %>%
  ungroup() %>%
  # 筛选起步第一且最终夺冠的记录
  filter(lap_1 == 1, lap_58 == 1)

# 计算核心指标
total_races <- n_distinct(f1_data$Year) # 总赛事场数
win_count <- nrow(stat_result) # 满足条件的场次数
win_rate <- win_count / total_races # 相对占比

结果查看

# 输出统计值
cat("起步领跑车手最终夺冠的次数:", win_count, "\n")
cat("1996-2019年总赛事场数:", total_races, "\n")
cat("起步夺冠占比:", round(win_rate * 100, 2), "%\n")

# 查看所有满足条件的对应年份和车手信息
print(stat_result %>% select(Year, driverId))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:24:01