code iq×japanr 公開用

48
CodeIQ×JapanR 2012/12/01 @doradora09

Upload: nobuaki-oshiro

Post on 19-Jun-2015

2.919 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Code iq×japanr 公開用

CodeIQ×JapanR

2012/12/01@doradora09

Page 2: Code iq×japanr 公開用

アジェンダ• 自己紹介• CodeIQ コラボ企画• 問題と解答例• 回答の傾向

Page 3: Code iq×japanr 公開用

アジェンダ• 自己紹介• CodeIQ コラボ企画• 問題と解答例• 回答の傾向

Page 4: Code iq×japanr 公開用

自己紹介• 氏名:大城信晃• Twitter: doradora09

• 職業: Web エンジニア

• R:勉強中• 趣味:

– カクテル作り– カメラ始めました

• 本日の懇親会幹事

Page 5: Code iq×japanr 公開用

TokyoR• TokyoR で主に運営側で参加• 最近は初心者用セッションも発表させて

いただいています

http://www.slideshare.net/akiaki5516/10rver21

10 分で分かる R 言語入門 ver2.1

Page 6: Code iq×japanr 公開用

アジェンダ• 自己紹介• CodeIQ とは• 問題と解答例• 回答の傾向

Page 7: Code iq×japanr 公開用

CodeIQ とはCodeIQ| IT エンジニアのための実務スキル評価サービス

https://codeiq.jp/

Page 8: Code iq×japanr 公開用

色々な言語の課題があります

Page 9: Code iq×japanr 公開用

Rの問題を出題させて頂きました!https://codeiq.jp/ace/doradora09/

Page 10: Code iq×japanr 公開用

目的• CodeIQ を知ってもらう• Rの布教

– R初心者を想定した問題

Page 11: Code iq×japanr 公開用

目的• CodeIQ を知ってもらう• Rの布教

– R初心者を想定した問題

「 R ではじめる株価分析」

Page 12: Code iq×japanr 公開用

アジェンダ• 自己紹介• CodeIQ コラボ企画• 問題と解答例• 回答の傾向

Page 13: Code iq×japanr 公開用

問題と解答例、その前に• 問題の回答期限が

   12/3( 月 ) AM 10:00

• ですので、• 今回の発表の内容は非公開でお願いしま

• 今日の発表を聞いて問題にチャレンジされる分にはOKです

Page 14: Code iq×japanr 公開用

概要• R を用いて株価データを取得しプロット

する問題です• 課題は1-3まであります• 株価取得には RFinanceYJ パッケージ ( 外

部パッ ケージ ) を利用します

Page 15: Code iq×japanr 公開用

RFinanceYJ• ヤフーファイナンスから株価情報を取得

するパッケージhttp://cran.r-project.org/web/packages/RFinanceYJ/index.html

Page 16: Code iq×japanr 公開用

RFinanceYJ• ヤフーファイナンスから株価情報を取得

するパッケージhttp://cran.r-project.org/web/packages/RFinanceYJ/index.html

Page 17: Code iq×japanr 公開用

RFinanceYJ• 名前載ってて驚き• (昔 5% くらいだけ手伝った記憶が・・)

Page 18: Code iq×japanr 公開用

【事前準備】• 以下の 2 社の株価データを取得してくださ

い。  1. ディー・エヌ・エー (2432.t)

2. グリー (3632.t)

なおデータを取得する期間は 2012 年 1 月4 日から現在の日付までとします。

Page 19: Code iq×japanr 公開用

【事前準備】install.packages(‘RFinanceYJ’)

library('RFinanceYJ')

dena <- quoteStockTsData('2432.t', '2012-01-04')

gree <- quoteStockTsData('3632.t', '2012-01-04')

(CRAN ミラーサーバは Japan(Tokyo) を選択 )

Page 20: Code iq×japanr 公開用

【課題1】• 【事前準備】で取得した2社のデータをそれぞ

れ 2012 年 1 月 4 日から 5 件表示して 下さい。

Page 21: Code iq×japanr 公開用

【課題1】 head 関数を利用head(dena, 5)

head(gree, 5)

> head(dena, 5)

date open height low close volume adj_close

229 2012-01-04 2321 2325 2285 2292 2077200 2292

228 2012-01-05 2288 2290 2217 2222 2882400 2222

227 2012-01-06 2235 2238 2111 2117 5601200 2117

226 2012-01-10 2092 2099 2000 2027 5049000 2027

225 2012-01-11 2005 2060 1891 1899 9326000 1899

Page 22: Code iq×japanr 公開用

【課題1】5行指定で表示dena[1:5,]

gree[1:5,]

> dena[1:5,]

date open height low close volume adj_close

229 2012-01-04 2321 2325 2285 2292 2077200 2292

228 2012-01-05 2288 2290 2217 2222 2882400 2222

227 2012-01-06 2235 2238 2111 2117 5601200 2117

226 2012-01-10 2092 2099 2000 2027 5049000 2027

225 2012-01-11 2005 2060 1891 1899 9326000 1899

Page 23: Code iq×japanr 公開用

【課題 2 】• 【事前準備】で取得した 2 社のデータの終

値 (close) を時系列でプロットしてください。• 補足:

– 可能であれば比較しやすいように図を重ね合わせて描画してください

Page 24: Code iq×japanr 公開用

【課題 2 】プロットmatplot(x=as.Date(dena$date), y=cbind(dena$close, gree$close), pch = 1:2)

Page 25: Code iq×japanr 公開用

【課題 2 】折れ線グラフにするmatplot(x=as.Date(dena$date), y=cbind(dena$close, gree$close), pch = 1:2, type = "o")

Page 26: Code iq×japanr 公開用

【課題 3 】• データを比較しやすいように 2012 年 1 月 4 日の

終値を1として、再度プロットして ください。

Page 27: Code iq×japanr 公開用

【課題 3 】matplot(x=as.Date(dena$date),       y=cbind(dena$close/dena$close[1], gree$close/gree$close[1]), pch = 1:2, type = "o")

Page 28: Code iq×japanr 公開用

あとは見やすくする• ここまでで大体 3点程度 ( 5点満点 )

• あとは軸と凡例等の見易さで加点

Page 29: Code iq×japanr 公開用

【各軸のタイトル追加】matplot(x=as.Date(dena$date),       y=cbind(dena$close/dena$close[1], gree$close/gree$close[1]), pch = 1:2, type = "o” xlab='date' , ylab=”per_close", main = 'dena vs gree')

Page 30: Code iq×japanr 公開用

【日付追加】d <- format(dena$date,"%m/%d")dena.c <- dena$close/dena$close[1]gree.c <- gree$close/gree$close[1]par(xaxt="n")matplot( y=cbind(dena.c, gree.c), pch = 1:2, type = "o", xlab='date' , ylab="per_close", main = 'dena vs gree')par(xaxt="s")axis(1,at=1:length(d),labels=d)

Page 31: Code iq×japanr 公開用

【日付追加】d <- format(dena$date,"%m/%d")dena.c <- dena$close/dena$close[1]gree.c <- gree$close/gree$close[1]par(xaxt="n")matplot( y=cbind(dena.c, gree.c), pch = 1:2, type = "o", xlab='date' , ylab="per_close", main = 'dena vs gree')par(xaxt="s")axis(1,at=1:length(d),labels=d)

Page 32: Code iq×japanr 公開用

【凡例追加】d <- format(dena$date,"%m/%d")dena.c <- dena$close/dena$close[1]gree.c <- gree$close/gree$close[1]par(xaxt="n")matplot( y=cbind(dena.c, gree.c), pch = 1:2, type = "o", xlab='date' , ylab="per_close", main = 'dena vs gree')par(xaxt="s")axis(1,at=1:length(d),labels=d)axis(4,c(tail(dena.c,1),tail(gree.c,1)),c("DeNA","GREE"))

Page 33: Code iq×japanr 公開用

【凡例追加】d <- format(dena$date,"%m/%d")dena.c <- dena$close/dena$close[1]gree.c <- gree$close/gree$close[1]par(xaxt="n")matplot( y=cbind(dena.c, gree.c), pch = 1:2, type = "o", xlab='date' , ylab="per_close", main = 'dena vs gree')par(xaxt="s")axis(1,at=1:length(d),labels=d)axis(4,c(tail(dena.c,1),tail(gree.c,1)),c("DeNA","GREE"))

Page 34: Code iq×japanr 公開用

評価基準• 以下の項目が評価基準になります

– 重ねてのプロット– 各軸の項目名– 日付– 折れ線グラフ– 凡例

Page 35: Code iq×japanr 公開用

アジェンダ• 自己紹介• CodeIQ コラボ企画• 問題と解答例• 回答の傾向

Page 36: Code iq×japanr 公開用

得点( 12 人中)

点数 人数

5 4

4 6

3 1

2 1

Page 37: Code iq×japanr 公開用

得点(のべ 25 人中)

点数 人数

5 9

4 12

3 2

2 1

1 0

0 1

Page 38: Code iq×japanr 公開用

プロット関数の種類( 12 人中)

関数 人数

plot 7

ts.plot 3

ggplot2 2

matplot 0

Page 39: Code iq×japanr 公開用

プロット関数の種類(のべ 25 人中)

関数 人数

plot 16

ggplot2 4

ts.plot 3

Matplot 1

未解答 1

Page 40: Code iq×japanr 公開用

解答例 (plot)

Page 41: Code iq×japanr 公開用

解答例 (ts.plot)

Page 42: Code iq×japanr 公開用

解答例 (ggplot2)

Page 43: Code iq×japanr 公開用

まとめ• 今回の問題が解けるとRを使って

– 株価データ取得– 2つのデータを比較– 軸や凡例付きの作図

といった基本的な利用が出来るようになります

Page 44: Code iq×japanr 公開用

まだまだ受付中!12/3( 月 ) AM 10:00

までチャレンジ受け付けてますので 是非 CodeIQ にチャレンジしてみてくださ

い!

Page 45: Code iq×japanr 公開用

ご清聴ありがとうございました

Page 46: Code iq×japanr 公開用

質疑応答

Page 47: Code iq×japanr 公開用

予備資料

Page 48: Code iq×japanr 公開用

• 【概要】 R を用いて株価データを取得しプロットする問題です。 株価データの取得には CRAN に登録されている RFinanceYJ パッケージ ( 外部パッ ケージ ) を利用します。

• 【事前準備】 RFinanceYJ パッケージをインストールしてください。 また RFinanceYJ パッケージの quoteStockTsData を使って以下の 2 社の株価データを取得してください。

• 1. ディー・エヌ・エー (2432.t) 2. グリー (3632.t) なおデータを取得する期間は 2012 年 1 月 4 日から現在の日付までとします。

• 【課題1】 【事前準備】で取得した2社のデータをそれぞれ 2012年 1 月 4 日から 5 件表示して 下さい。データを表示したらデータ取得から表示までのコードを 提出して下さい。

• 【課題 2 】 【事前準備】で取得した 2 社のデータの終値 (close) を時系列でプロットしてくだ さい。プロットしたらそのコードを提出してください。

• 【課題 3 】 データを比較しやすいように 2012 年 1 月 4 日の終値を1として、再度プロットして ください。プロットしたらそのコードを提出してください。

問題