【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でのみしか公開されていない資料がたくさんあります。このパッケージを使うと、このようなデータでも活用できそうですね。