www.crosshyou.info

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

配当ランキングのデータの分析1 - R言語でYahoo!ファイナンスのデータをウェブスクレイピングする。

 

 

 を読んでいるのですが、そこにウェブスクレイピングの方法が書いてありましたので早速、練習をしてみようと思います。

f:id:cross_hyou:20201227085637p:plain

こちらのYahoo!ファイナンスの配当利回りランキングのデータをスクレイピングしてみます。

まずは、tidyverseパッケージとrvestパッケージの読み込みをします。

f:id:cross_hyou:20201227090906p:plain

まず、読み込むURLを登録します。

f:id:cross_hyou:20201227091347p:plain

read_html関数で読み込みます。

f:id:cross_hyou:20201227091436p:plain

html_nodes関数でテーブルの部分だけを取り出します。

f:id:cross_hyou:20201227091548p:plain

何個のテーブルを読み込んだのか確認します。

f:id:cross_hyou:20201227091650p:plain

一つだけでした。html_table関数でこのテーブルをデータフレーム型に変換します。

f:id:cross_hyou:20201227091756p:plain

str関数で構造を確認します。

f:id:cross_hyou:20201227091930p:plain

取引値という名前のコラムが2つありますね。これは一つ目のコラムを日付に変更しましょう。それと、掲示板というコラムは必要ないですね。

f:id:cross_hyou:20201227092331p:plain

コラム名を上書きして変更しました。

f:id:cross_hyou:20201227092444p:plain

select関数でkeijibanを削除しました。

str関数で確認してみます。

f:id:cross_hyou:20201227092751p:plain

rank, code, price, dps, yieldは本来は数値型でないといけないデータですが、文字列型になっています。

rankを全部表示させて、どうなっているかみてみましょう。

f:id:cross_hyou:20201227093259p:plain

51番目のデータが、"順位"と数字でなくて文字列になっていますね。だからrank全体が文字列型になっているのですね。

他の列の51番目のデータも確認しましょう。

f:id:cross_hyou:20201227093521p:plain

51番目のデータが全部コラム名になっていますね。削除してしまいましょう。

f:id:cross_hyou:20201227093723p:plain

view関数でtabを表示してみます。

f:id:cross_hyou:20201227094533p:plain

f:id:cross_hyou:20201227094550p:plain

このようにYahoo!ファイナンスの配当利回りランキングをR言語に取り込むことができました。

rankやkodeなど文字列型になっているデータを数値型に変換しなくてはいけないのですが、少し疲れましたので、次回に持ち越したいと思います。

このデータをCSVファイルに出力して、次回からはこのCSVファイルを読み込むようにします。

f:id:cross_hyou:20201227095617p:plain

read_csv関数で読み込んでみます。

f:id:cross_hyou:20201227095756p:plain

あ!yield以外は数値型になりましたね!

それなら、ここでyieldも数値型にしてしまいましょう。

%の記号をなくして、as.numeric関数で数値にすればいいです。

f:id:cross_hyou:20201227100130p:plain

summary関数でtabをみてみましょう。

f:id:cross_hyou:20201227100302p:plain

今回は以上です。