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

R语言导入PDF文件并完成数据整理的实操问题咨询

PDF导入优化方案

针对带表格的PDF数据,推荐两种比read_table更稳妥的导入方式,可避免单变量、丢单元格内容的问题:

  • 方案1:用pdftools::pdf_data()按坐标提取
    该函数会返回带位置坐标的文本结果,可精准筛选你需要的底部117行区域,自动对齐列:
library(pdftools)
library(tidyverse)
# 读取PDF所有页面文本及坐标
pdf_raw <- pdf_data("Q2 - WPA_points (Field).pdf")
# 单页PDF取第一个列表元素,多页可通过bind_rows合并
page_df <- pdf_raw[[1]]
# 筛选排除前5行的y坐标范围(可先运行View(page_df)查看前5行对应的y区间,替换下方参数)
table_df <- page_df %>%
  filter(y > 120) %>% # 120为示例值,根据实际调整
  arrange(y, x) %>%
  group_by(y) %>%
  mutate(col_id = row_number()) %>%
  ungroup() %>%
  pivot_wider(id_cols = y, names_from = col_id, values_from = text)
  • 方案2:用tabulizer包自动识别表格
    该包专门用于PDF表格提取,可自动识别结构直接导出规整数据框,适合无复杂格式的PDF表格:
# 安装命令:remotes::install_github("ropensci/tabulizer"),使用前需安装Java8及以上版本
library(tabulizer)
# 可通过area参数指定提取区域,跳过头部无关内容
field_data <- extract_tables("Q2 - WPA_points (Field).pdf", output = "data.frame")[[1]]
现有数据的需求实现代码

针对你已经删除前5行的数据集,以下代码可一次性完成三个需求:

library(tidyverse)
# 1. 将第一行设为列名
col_names <- as.character(field_data[1,])
field_data <- field_data[-1,]
colnames(field_data) <- col_names
# 统一转为字符型避免类型报错
field_data <- mutate(field_data, across(everything(), as.character))

# 2. Event为空的行右移对齐 + 3. 填充Event空值
# 以下代码默认你有7列,列名为Event、Class、a、b、c、d、e,可根据实际列名调整
field_data_clean <- field_data %>%
  rowwise() %>%
  mutate(
    # 标记Event为空的行
    empty_event = is.na(Event) | str_squish(Event) == "",
    # 右移对齐逻辑:空行的所有列依次向左取上一列的内容,Event位留空后续填充
    new_Event = ifelse(empty_event, NA_character_, Event),
    new_Class = ifelse(empty_event, Event, Class),
    new_a = ifelse(empty_event, Class, a),
    new_b = ifelse(empty_event, a, b),
    new_c = ifelse(empty_event, b, c),
    new_d = ifelse(empty_event, c, d),
    new_e = ifelse(empty_event, d, e)
  ) %>%
  ungroup() %>%
  # 保留处理后的列并重命名
  select(Event = new_Event, Class = new_Class, a = new_a, b = new_b, c = new_c, d = new_d, e = new_e) %>%
  # 向下填充Event列的空值
  fill(Event, .direction = "down")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:24:05