Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HirofumiYashima/d05bf72687bb4e4bb2d1 to your computer and use it in GitHub Desktop.
Save HirofumiYashima/d05bf72687bb4e4bb2d1 to your computer and use it in GitHub Desktop.
R言語を用いて、日経ウェブサイトから日経平均株価の日次データを取り込み、年月日列(1列目)と終値列(2列目)の間に、曜日列を挿入するデータ加工を行うスクリプト例
Qiita アップロード先 URL
http://qiita.com/HirofumiYashima/items/f2b39ca1556c809e00d3
#### ウェブサイト「日経平均プロフィル 日経の指数情報サイト」で公開されている日経平均株価の日次データファイルをRに取り込む
address <- "http://indexes.nikkei.co.jp/nkave/historical/nikkei_stock_average_daily_jp.csv"
nikkei225 <- read.csv(file=url(address), header=TRUE, sep=",")
#### データの冒頭を確認。
head(nikkei225)
データ日付 終値 始値 高値 安値
1 2011/01/04 10398.10 10352.19 10409.17 10321.28
2 2011/01/05 10380.77 10387.95 10413.45 10358.01
3 2011/01/06 10529.76 10477.52 10530.11 10477.52
4 2011/01/07 10541.04 10506.72 10550.71 10503.02
5 2011/01/11 10510.68 10484.62 10538.39 10476.29
6 2011/01/12 10512.80 10562.28 10576.51 10502.96
#### データの末尾を確認。
tail(nikkei225,1)
データ日付
823 本資料は日経の著作物であり、本資料の全部又は一部を、いかなる形式によっても日経に無断で複写、複製、転載または流布することができません。
終値 始値 高値 安値
823 NA NA NA NA
#### 末尾に文章(注記)が記述されているため、データオブジェクト nikkei225 から、 823行目を削除
nikkei225 <- nikkei225[-823, ]
tail(nikkei225,2)
データ日付 終値 始値 高値 安値
821 2014/05/08 14163.78 14136.41 14254.44 14108.16
822 2014/05/09 14199.59 14101.98 14266.29 14091.20
#### nikkei225データの「終値」を呼び出すときに、「nikkei225$終値」 と打つのは手間がかかる。
「終値」と打てば済むように、attach()関数で、nikkei225データをRのsearch pathに登録する。
attach(nikkei225)
#### weekdays()関数で、各日付の曜日を取得。weekdays関数の引数(括弧の中)は、Date型のデータへの型変換が必須。
youbi <- weekdays(as.Date(データ日付))
#### データオブジェクト youbi の冒頭を表示
head(youbi)
[1] "火曜日" "水曜日" "木曜日" "金曜日" "火曜日" "水曜日"
#### 対応する日付の冒頭を表示
head(データ日付)
[1] 2011/01/04 2011/01/05 2011/01/06 2011/01/07 2011/01/11 2011/01/12
#### 2011年1月4日は火曜日で合っている。
#### 日付と曜日は問題なく対応していることが確認できた。
#### 2列目 (日付列と終値列の間)に、曜日列を挿入。
#### データ全体を、新たなデータオブジェクト nikkei225_new に格納。
nikkei225_new <- data.frame(データ日付, youbi, 終値, 始値, 高値, 安値)
#### 作成したnikkei225_newの冒頭行を確認。
head(nikkei225_new,10)
データ日付 youbi 終値 始値 高値 安値
1 2011/01/04 火曜日 10398.10 10352.19 10409.17 10321.28
2 2011/01/05 水曜日 10380.77 10387.95 10413.45 10358.01
3 2011/01/06 木曜日 10529.76 10477.52 10530.11 10477.52
4 2011/01/07 金曜日 10541.04 10506.72 10550.71 10503.02
5 2011/01/11 火曜日 10510.68 10484.62 10538.39 10476.29
6 2011/01/12 水曜日 10512.80 10562.28 10576.51 10502.96
7 2011/01/13 木曜日 10589.76 10593.46 10620.57 10565.28
8 2011/01/14 金曜日 10499.04 10502.77 10579.97 10497.26
9 2011/01/17 月曜日 10502.86 10562.09 10562.39 10482.69
10 2011/01/18 火曜日 10518.98 10461.04 10548.21 10456.71
#### 2列目に曜日が挿入された。
#### 列名「youbi」 を「曜日」に直す。※列名を、全部 日本語にそろえる。
colnames(nikkei225_new) <- c("データ日付", "曜日", "終値", "始値", "高値", "安値")
head(nikkei225_new,10)
データ日付 曜日 終値 始値 高値 安値
1 2011/01/04 火曜日 10398.10 10352.19 10409.17 10321.28
2 2011/01/05 水曜日 10380.77 10387.95 10413.45 10358.01
3 2011/01/06 木曜日 10529.76 10477.52 10530.11 10477.52
4 2011/01/07 金曜日 10541.04 10506.72 10550.71 10503.02
5 2011/01/11 火曜日 10510.68 10484.62 10538.39 10476.29
6 2011/01/12 水曜日 10512.80 10562.28 10576.51 10502.96
7 2011/01/13 木曜日 10589.76 10593.46 10620.57 10565.28
8 2011/01/14 金曜日 10499.04 10502.77 10579.97 10497.26
9 2011/01/17 月曜日 10502.86 10562.09 10562.39 10482.69
10 2011/01/18 火曜日 10518.98 10461.04 10548.21 10456.71
#### 列名がすべて日本語にそろえられた。
#### 作業を終えたので、search pathから nikkei225 を登録解除する。
detach(nikkei225)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment