在R中使用pdftools在字符串后提取特定表

我有几个PDF,我希望提取股东表。如何指定仅提取出现在字符串“ TWENTY LARGEST SHAREHOLDERS”之后的表?

我尝试过但对功能部分不太确定。

library("pdftools")
library("tidyverse")

url <- c("https://www.computershare.com/News/Annual%20Report%202019.pdf?2")

raw_text <- map(url, pdf_text)


clean_table <- function(table){
  table <- str_split(table, "\n", simplify = TRUE)
  table_start <- stringr::str_which(table, "TWENTY LARGEST SHAREHOLDERS")
  table <- table[1, (table_start +1 ):(table_end - 1)]
  table <- str_replace_all(table, "\\s{2,}", "|")
  text_con <- textConnection(table)
  data_table <- read.csv(text_con, sep = "|")
  colnames(data_table) <- c("Name", "Number of Shares", "Percentage")
}

shares <- map_df(raw_text, clean_table) 

斯蒂芬

尝试这个。除了一些小问题,主要的变化是我首先获得了包含所需表的页面。顺便说一句:您必须搜索“二十大股东”,而不是“二十大股东”。

library(pdftools)
library(tidyverse)

# download pdf
url <- c("https://www.computershare.com/News/Annual%20Report%202019.pdf?2")

raw_text <- map(url, pdf_text)

clean_table1 <- function(raw) {
  
  # Split the single pages
  raw <- map(raw, ~ str_split(.x, "\\n") %>% unlist())
  # Concatenate the splitted pages
  raw <- reduce(raw, c)
  
  table_start <- stringr::str_which(tolower(raw), "twenty largest shareholders")
  table_end <- stringr::str_which(tolower(raw), "total")
  table_end <- table_end[min(which(table_end > table_start))]
  
  table <- raw[(table_start + 3 ):(table_end - 1)]
  table <- str_replace_all(table, "\\s{2,}", "|")
  text_con <- textConnection(table)
  data_table <- read.csv(text_con, sep = "|")
  colnames(data_table) <- c("Name", "Number of Shares", "Percentage")
  data_table
}

shares <- map_df(raw_text, clean_table1) 
head(shares)
#>                                                    Name Number of Shares
#> 1             J P Morgan Nominees Australia Pty Limited      109,500,852
#> 2                         Citicorp Nominees Pty Limited       57,714,777
#> 3                                       Mr Chris Morris       32,231,000
#> 4                             National Nominees Limited       19,355,892
#> 5                                         Welas Pty Ltd       18,950,000
#> 6 BNP Paribas Nominees Pty Ltd <Agency Lending DRP A/C>       11,520,882
#>   Percentage
#> 1      20.17
#> 2      10.63
#> 3       5.94
#> 4       3.56
#> 5       3.49
#> 6       2.12

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在R中使用strsplit提取特定字符串

来自分类Dev

在R中使用REGEX将值中的特定字符串提取为新列?

来自分类Dev

在R中使用REGEX将值中的特定字符串提取为新列?

来自分类Dev

提取特定字符串后的数字

来自分类Dev

使用R从字符串中提取特定格式的子字符串(ID,代码)

来自分类Dev

使用 RegExp 提取特定字符串

来自分类Dev

perl在特定模式后提取字符串

来自分类Dev

在特定单词后提取字符串

来自分类Dev

发生特定数据后提取字符串

来自分类Dev

如何提取特定模式后出现的字符串?

来自分类Dev

perl - 表提取 - 在连接或字符串中使用未初始化的值

来自分类Dev

在Python中使用正则表达式提取字符串的特定部分

来自分类Dev

Android Java:在特定字符后从uri字符串中提取子字符串

来自分类Dev

从R中的字符串中间提取特定字符

来自分类Dev

在R中使用data.table提取文本字符串

来自分类Dev

在R中使用正则表达式从链接中提取字符串

来自分类Dev

使用stringr在字符串后提取带符号的数字

来自分类Dev

R:从字符串中提取特定数字

来自分类Dev

提取R中特定文本之后的字符串子集

来自分类Dev

提取R中字符串中的特定元素

来自分类Dev

从R中的字符串变量中提取特定值

来自分类Dev

R:从字符串中提取特定数字

来自分类Dev

使用 R 中的 stringr 包提取输入字符串的特定部分

来自分类Dev

如何使用 R 提取 URL 中的特定子字符串?

来自分类Dev

在Pharo Smalltalk中使用索引提取子字符串

来自分类Dev

在Java中使用REGEX从字符串中提取令牌

来自分类Dev

如何使用Python Regex提取特定的字符串

来自分类Dev

使用bash脚本从文件中提取特定字符串

来自分类Dev

使用Python从Telnet输出中提取特定的字符串

Related 相关文章

  1. 1

    在R中使用strsplit提取特定字符串

  2. 2

    在R中使用REGEX将值中的特定字符串提取为新列?

  3. 3

    在R中使用REGEX将值中的特定字符串提取为新列?

  4. 4

    提取特定字符串后的数字

  5. 5

    使用R从字符串中提取特定格式的子字符串(ID,代码)

  6. 6

    使用 RegExp 提取特定字符串

  7. 7

    perl在特定模式后提取字符串

  8. 8

    在特定单词后提取字符串

  9. 9

    发生特定数据后提取字符串

  10. 10

    如何提取特定模式后出现的字符串?

  11. 11

    perl - 表提取 - 在连接或字符串中使用未初始化的值

  12. 12

    在Python中使用正则表达式提取字符串的特定部分

  13. 13

    Android Java:在特定字符后从uri字符串中提取子字符串

  14. 14

    从R中的字符串中间提取特定字符

  15. 15

    在R中使用data.table提取文本字符串

  16. 16

    在R中使用正则表达式从链接中提取字符串

  17. 17

    使用stringr在字符串后提取带符号的数字

  18. 18

    R:从字符串中提取特定数字

  19. 19

    提取R中特定文本之后的字符串子集

  20. 20

    提取R中字符串中的特定元素

  21. 21

    从R中的字符串变量中提取特定值

  22. 22

    R:从字符串中提取特定数字

  23. 23

    使用 R 中的 stringr 包提取输入字符串的特定部分

  24. 24

    如何使用 R 提取 URL 中的特定子字符串?

  25. 25

    在Pharo Smalltalk中使用索引提取子字符串

  26. 26

    在Java中使用REGEX从字符串中提取令牌

  27. 27

    如何使用Python Regex提取特定的字符串

  28. 28

    使用bash脚本从文件中提取特定字符串

  29. 29

    使用Python从Telnet输出中提取特定的字符串

热门标签

归档