crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

内閣支持率のデータの分析1 - R言語でウィキペディアの表をスクレイピングする。

今回はR言語でウィキペディアの内閣支持率のデータをスクレイピングしてみたいと思います。

内閣支持率 - Wikipedia

f:id:cross_hyou:20210110103411p:plain

こういう表のデータです。

 

 この本を参考にしてやってみました。

まずは、必要なパッケージの読み込みです。tidyverseとevestパッケージをlibrary関数で読み込みます。

f:id:cross_hyou:20210110103641p:plain

read_html関数でウェブのデータを読み込みます。

f:id:cross_hyou:20210110103820p:plain

class関数で読み込んだhオブジェクトのクラスを確認します。

f:id:cross_hyou:20210110103922p:plain

xml_document, xml_nodeというクラスのようです。

html_text関数で読み込んだウェブのテキストが表示されます。

f:id:cross_hyou:20210110104108p:plain

まだまだ文字列が続くのですが割愛します。

これを見てもよくわからないですね。とりあえず、データは読み込まれたようです。

表の部分だけを取り出すには、html_nodes関数を使います。

f:id:cross_hyou:20210110104313p:plain

3つ表があるようです。よく見ると、2番目がtable class = "sortable wikitable"となっているので、これが歴代内閣支持率の表のようです。

html_table関数でウェブの表をR言語のデータフレームに変換できます。

f:id:cross_hyou:20210110104622p:plain

 

names関数でコラム名を確認してみます。

f:id:cross_hyou:20210110104705p:plain

 

このコラム目を整理します。

f:id:cross_hyou:20210110104823p:plain

 

1行目を表示してみます。

f:id:cross_hyou:20210110104915p:plain

1行目を削除します。

f:id:cross_hyou:20210110104958p:plain

 

head関数ではじめの数行を表示してみます。

f:id:cross_hyou:20210110105104p:plain

 

55%とか14%などは文字列型になっているので、mutate_at関数とparse_number関数で数値型に変換します。

f:id:cross_hyou:20210110105333p:plain

 

head関数ではじめの数行を表示してみます。

f:id:cross_hyou:20210110105458p:plain

%が取れています。

str関数でほんとうに数値型になったか確認してみましょう。

f:id:cross_hyou:20210110110049p:plain

数値型になっていますね。

 

内閣の名前が、01/第3次吉田内閣、02/鳩山一郎内閣などとあたまに何番目の内閣なのかの数字がついていますので、これを分離します。

separate関数を使います。

f:id:cross_hyou:20210110110349p:plain

32行目と33行目はデータがありませんね。32行目、33行目、それをnumberも必要ないので削除しましょう。

f:id:cross_hyou:20210110110510p:plain

これで完成です。

summary関数でデータのサマリを見てみます。

f:id:cross_hyou:20210110110923p:plain

支持率の最高は86.3%、不支持率の最高は59.3%、支持率の最低は19.5%、不支持率の最低は5.0%です。

今回は以上です。

 次回は、

 

www.crosshyou.info

 です。