【R】pdftools
2020年7月25日
1. はじめに
PDFのデータって、世の中にあふれていますよね。このデータをR
で処理できるとすばらしいですよね。で、それを実現してくれるパッケージがpdftools
です。これを実際に使ってみます。PDFの情報・文章をRでごっそり取得するサイトも参考にさせていただきました。
2. インストール
CRANからインストールします。
install.packages('pdftools')
3. 使ってみる
Freee株式会社の決算短信を読込んでみます。pdf_info
でpdfの情報を取得できます。
library(pdftools) library(RCurl) fileUrl <- "https://contents.xj-storage.jp/xcontents/AS08692/e81d836e/ec80/4996/9a5c/8b8aac75d753/20200515150802242s.pdf" download.file(fileUrl, destfile = "./freee.pdf", mode="wb") res.info <- pdf_info("freee.pdf") res.info %>% names()
> res.info %>% names()
[1] "version" "pages" "encrypted" "linearized" "keys" "created" "modified" "metadata"
[9] "locked" "attachments" "layout"
テキストマイニングするには、pdf_text()
関数でテキストを取得すると便利です。
res <- pdf_text("freee.pdf")
データはページごとに取得されます。バランスシート(p.6)を読み込んで、主要な資産、負債、純資産を表示させてみましょう。
BS_page <- 6 sum_current_assets <- "流動資産合計" sum_fixed_assets <- "固定資産合計" sum_current_debt <- "流動負債合計" sum_fixed_debt <- "固定負債合計" sum_net_worth <- "純資産合計" dat <- res[BS_page] %>% str_replace_all(pattern = ",", replacement = "") %>% str_split(pattern = "\r\n") %>% str_squish()%>% str_split(pattern = '\", \"') %>% as.data.frame() dat %>% filter(grepl(sum_current_assets, dat[,1]) | grepl(sum_fixed_assets, dat[,1]) | grepl(sum_current_debt, dat[,1]) | grepl(sum_fixed_debt, dat[,1]) | grepl(sum_net_worth, dat[,1]))
c..c....フリー株式会社.4478..2020年6月期.第3四半期決算短信...
1 流動資産合計 6616153 16967509
2 無形固定資産合計 377351 681593
3 固定資産合計 764804 1218114
4 流動負債合計 2870902 3592985
5 純資産合計 4510056 14592638
6 負債純資産合計 7380958 18185624
PDFファイルにある2期分のデータを取得できました。
4. さいごに
pdfでのみしか公開されていない資料がたくさんあります。このパッケージを使うと、このようなデータでも活用できそうですね。