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

如何自动处理跨两行的表格列标签?R语言数据清洗求助

解决公民科学数据表格的列标签合并问题

以下是自动化处理原始表格、生成目标格式的步骤,全程无需手动编辑列标签:

1. 加载依赖包

使用tidyverse工具集处理数据:

library(tidyverse)

2. 读取原始数据

用你提供的代码读取CSV,这里模拟数据方便演示:

# 实际使用:reprex <- read_csv("reprex.csv", col_names = FALSE)
reprex <- tibble(
  X1 = c(NA, NA, "SiteA", "SiteB", "SiteC"),
  X2 = c(NA, "Total", "180", NA, "237"),
  X3 = c("2014", "F", "92", NA, "194"),
  X4 = c(NA, "M", "88", NA, "43"),
  X5 = c(NA, "Total", "134", "247", "220"),
  X6 = c("2015", "F", "40", "143", "95"),
  X7 = c(NA, "M", "94", "104", "125"),
  X8 = c(NA, "Total", "34", "8", "62"),
  X9 = c("2016", "F", "20", "8", "45"),
  X10 = c(NA, "M", "14", "0", "17")
)

3. 生成目标列名

提取前两行的年份和类别信息,自动组合成2014 Total这类格式的列名:

# 提取前两行作为列名模板并转置
col_template <- reprex %>% 
  slice(1:2) %>% 
  t() %>% 
  as_tibble() %>% 
  rename(year = V1, category = V2)

# 填充每组缺失的年份(年份出现在每组中间列,用前后填充补全)
col_template <- col_template %>%
  mutate(year = ifelse(is.na(year), lag(year), year)) %>%
  mutate(year = ifelse(is.na(year), lead(year), year))

# 组合年份和类别,第一列命名为Location
col_names <- col_template %>%
  mutate(col_name = case_when(
    row_number() == 1 ~ "Location",
    TRUE ~ paste(year, category)
  )) %>%
  pull(col_name)

4. 整理最终数据

提取有效数据行,设置新列名并转换数值类型:

clean_data <- reprex %>%
  slice(-1:-2) %>%  # 移除前两行的列标签行
  set_names(col_names) %>%  # 应用新列名
  mutate(across(-Location, as.numeric))  # 将数据列转为数值型

执行后clean_data就是你需要的目标格式:

> clean_data
# A tibble: 3 × 10
  Location `2014 Total` `2014 F` `2014 M` `2015 Total` `2015 F` `2015 M` `2016 Total` `2016 F` `2016 M`
  <chr>           <dbl>    <dbl>    <dbl>        <dbl>    <dbl>    <dbl>        <dbl>    <dbl>    <dbl>
1 SiteA             180       92       88          134       40       94           34       20       14
2 SiteB              NA       NA       NA          247      143      104            8        8        0
3 SiteC             237      194       43          220       95      125           62       45       17

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:39:16