- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
{{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型のデータに戻す