トップ 一覧 検索 ヘルプ RSS ログイン 印刷

html_table()の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{category package}} {{category rvest}}

!HTMLファイルから表(tableタグ)を読み取ってデータフレームにする

xmlfile.xhtmlが仮にあったとして、その中からtableを読み取って何かのデータを得たいとき。

 xml2::xml_read("xmlfile.xhtml") %>%
 rvest::html_text %>%
 rvest::html_table -> dataframe.df

但し、いくつかの前提となる制約がある。

+ テーブルは列や行が統合されていない(統合されていれば同じ要素をその数だけ加える)
+ 見出しの行は一番上にある

さらに、もともとのテーブルがデータ処理用に縦横綺麗に作られているとは限りません。実は個々の処理が一番苦労する。

タグの編集は、タグをノードとして扱うよりは、as.characterでテキストとして扱うほうが手軽なこともある。
! タグの編集は、タグをノードとして扱うよりは、as.characterでテキストとして扱うほうが手軽なこともある。
以下は、r-wakalangでill_identifiedさんに教わったもの

 tables <- html %>%
  as.character %>%
  str_replace_all("</tr>\n<td", "</tr>\n<tr>\n<td") %>%
  str_replace_all("<br>", ",") %>%
  as.character %>%   #ここで文字型テキストに変換
  str_replace_all("</tr>\n<td", "</tr>\n<tr>\n<td") %>%  #不要なデータを編集を加える(その1)
  str_replace_all("<br>", ",") %>%    #不要なデータを編集を加える(その2)
  read_html() %>%  #HTML型のデータに戻す