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

如何在R中导入包含堆叠子表的CSV文件?

用R tidyverse处理堆叠子表CSV的方案

直接上可运行的tidyverse代码,思路就是给每个子表标记对应的赛道名,再清理掉无用行:

library(tidyverse)

# 导入CSV(替换成你的文件路径)
race_data <- read_csv("your_file.csv")

# 核心处理步骤
tidy_data <- race_data %>%
  # 从Header=1的行提取赛道名,其他行先设为NA
  mutate(Circuit = if_else(Header == 1, Car, NA_character_)) %>%
  # 将赛道名向下填充,覆盖同子表的所有数据行
  fill(Circuit, .direction = "down") %>%
  # 过滤掉作为子表表头的行
  filter(Header == 0) %>%
  # 调整列顺序到目标格式
  select(Car, LapTime, Circuit) %>%
  # 转为tidyverse的tbl格式(read_csv默认已生成tbl,此步可选)
  as_tibble()

# 查看最终结果
print(tidy_data)

关键步骤说明:

  • mutate(Circuit = ...):识别每个子表的表头行(Header=1),把该行Car列的赛道名提取到新的Circuit列,非表头行暂时填充NA
  • fill(Circuit, .direction = "down"):将每个赛道名向下填充,直到遇到下一个子表的表头行,让同子表的所有数据行都带上对应的赛道标记
  • filter(Header == 0):剔除所有作为子表表头的行,只保留真实的赛车圈速数据
  • select(...):调整列的顺序,匹配你需要的输出格式

这套逻辑不需要预先知道子表数量和行数,能自动适配任意数量的堆叠子表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:32:07