Created
May 9, 2014 08:44
-
-
Save HirofumiYashima/d05bf72687bb4e4bb2d1 to your computer and use it in GitHub Desktop.
R言語を用いて、日経ウェブサイトから日経平均株価の日次データを取り込み、年月日列(1列目)と終値列(2列目)の間に、曜日列を挿入するデータ加工を行うスクリプト例
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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