2017-10-26 22 views
1

tabulizerパッケージで四半期ごとの損益計算書を抽出し、表形式に変換します。唯一の包括利益テーブルの要約連結損益計算書に興味tabulizerパッケージの文字列に基づいてリストを抽出します。

# 2017 Q3 Report 
telia_url = "http://www.teliacompany.com/globalassets/telia- 
company/documents/reports/2017/q3/telia-company-q3-2017-en" 
telialists = extract_tables(telia_url) 
teliatest1 = as.data.frame(telialists[22]) 

#2009 Q3# 
telia_url2009 = "http://www.teliacompany.com/globalassets/telia- 
company/documents/reports/2009/q3/teliasonera-q3-2009-report-en.pdf" 
telialists2009 = extract_tables(telia_url2009) 
teliatest2 = as.data.frame(telialists2009[9]) 

。この文字列は、すべての履歴レポートに対して正確または非常によく似ています。

以上、2017レポートでは、リスト#22が正しい表でした。しかし、2009年のレポートはレイアウトが違っていたため、その特定のレポートでは#9が正しいものでした。

「包括利益計算書」の文字列(または部分文字列)がどこにあるかに応じて、この関数を動的にする巧妙なソリューションは何でしょうか?

多分、相対位置を見つけるためにtmパッケージを使用していますか?

おかげ

答えて

0

あなたが興味のあるページを見つけるためにpdftoolsを使用することができ

例えば、このような機能は、ジョブを実行する必要があります。

get_table <- function(url) { 
    txt <- pdftools::pdf_text(url) 
    p <- grep("condensed consolidated statements.{0,10}comprehensive income", 
      txt, 
      ignore.case = TRUE)[1] 
    L <- tabulizer::extract_tables(url, pages = p) 
    i <- which.max(lengths(L)) 
    data.frame(L[[i]]) 
} 

最初のステップです文字ベクトルtxtのすべてのページを読む。その後、grepはあなたが望むもののような最初のページを見つけることを可能にします(.{0,10}を挿入して、タイトルの中央にスペースや改行などの最大10文字を許可します)。

tabulizer使用して、はるかに高速にあなたが行ったように、文書のすべてのテーブルを抽出するよりもする必要がありますこのページ上にあるすべてのテーブルのリストLを抽出することができます。あなたのテーブルはそのページでおそらく最大のものなので、which.maxです。

関連する問題