提取 R 中 tabulapdf 抓取的数据框的“列名称”

问题描述 投票:0回答:1

我正在使用 tabulizer/tabulapdf 从 pdf 中抓取表格。我的脚本在几个月前有效,但现在我收到了一个我不熟悉的数据框 - 并且它抛出错误。问题似乎是原始表格没有标题行,但 tabulapdf 将第一行视为一行,我无法从数据框的“标题”中提取数据。

这是来自

dput()
的数据框:

scraped_data <- list(
  structure(
    list(
      `NORTH AMERICA. PREMIER LEAGUE (W) (25.10.2022)` = "Team A 2 – 0 Team B"
    ),
    row.names = c(NA, -1L),
    spec = structure(
      list(
        cols = list(
          `NORTH AMERICA. PREMIER LEAGUE (W) (25.10.2024)` = structure(
            list(),
            class = c("collector_character", "collector")
          )
        ),
        default = structure(
          list(),
          class = c("collector_guess", "collector")
        ),
        delim = "\t"
      ),
      class = "col_spec"
    ),
    # problems = <pointer: 0x1347fb760>, # This throws an error when trying to assign
                                         # to `new_scraped_data`. Commenting out.
    class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame")
  )
)

以前,我会使用

scraped_data[[1]][1,1]
scraped_data[[1]][2,1]
提取元素...有没有办法保留此功能,这样我就不必重写所有代码(还有更多这样的表)?

所以寻找类似“”的东西

scraped_data |> turn_header_into_a_row()
r tabulizer
1个回答
0
投票

从列表中提取标题并将其添加为新行。

header_row <- colnames(scraped_data[[1]])
scraped_data[[1]] <- rbind(header_row, scraped_data[[1]])

请注意,除非您重命名列,否则列名称将保留

© www.soinside.com 2019 - 2024. All rights reserved.