2015年9月15日火曜日

【R言語】競馬データで「rbind関数」の使い方を覚えよう!

 僕のような「R言語超初心者」向けエントリーです(笑)
最終的にはEXCELのピボットに頼らず、plyr関数等でカッコよくデータをグリグリ集計できるようになることをゴールに何回か書きたいと思っています。 


データ収集について


 データについては、下記エントリーを参考にしながら、「時系列」で取得できるものを「別ファイル」で用意してください。

無料のスクレイピングサービス「import.io」が脅威の進化!(いつのまにか)
http://sapporomkt.blogspot.jp/2015/08/importio.html

参考ページ:(R言語)readHTMLTable関数でJ2の順位を音速で抜き出す。
http://sapporomkt.blogspot.jp/2015/07/rreadhtmltablej2.html

※WEBスクレイピングは、相手サーバーに負荷をかけないよう挙動がわかるツールやスクリプトを使ってください。もちろん、過度にアクセスのインターバルが短いものはダメです。
※readHTMLTable関数は、機種依存文字を含んでいると途中でコケます。



そもそも「rbind」関数ってなに?


 おっと、説明の順番が逆でした(笑)。R言語における「rbind」関数は、個別のデータフレームを「行」で統合することが出来ます。また、「cbind」は「列」での統合となります。
 このように書くとイメージしづらいかもしれませんので、実例をご覧ください。


時系列データを「行」で統合しよう!


 事前に、JBISサイアーランキングから2011~2015年データを取得しておきます。
同一年度内で全ページに順回取得しても下位データはあまり使えないので、せいぜいトップ100の取得に留めてください(アクセス1回だけで済みますし)



 今回は、JBIS Searchさんの「年度別サイアーランキング」からデータを拝借しました。
お天気好きな方は気象庁の時系列データでもいいかも。
 

# 各年度のCSVファイルを取り込み。
jbis11.dat <- read.csv("JBIS_2011.csv")

# transform関数で列を追加です。下記のようにすると、全行に「2011」が入ります。
jbis11.dat <- transform(jbis11.dat, Year = 2011)

# 上記を繰り返した後、rbind関数でガッチャンコです。これだけ!
jbis_11_15.dat <- rbind(jbis11.dat,jbis12.dat,jbis13.dat,jbis14.dat,jbis15.dat)

# いちおう、CSVに書き出して内容確認しましょう。
write.table(jbis_11_15.dat, "jbis_11_15.csv", sep = ",")

0 件のコメント:

コメントを投稿