2017年6月10日土曜日

【R】日付から曜日を簡単に取得する方法

議員会館内(本文に関係なし)

◇あらすじ

久しぶりの投稿。転職後、仕事が忙しすぎて趣味で分析する気が全くわかず、完全にブログを放置。しかし、最近、仕事で売り上げの予測モデルを構築することがあり、これが(不確定要素や未知の変数が多そうな割に)結構良い感じの精度だった。それが契機となり、(学生の頃、半年後の為替を予測するコンテストで全国2位になった経験を活かしつつ?)株価の予測モデルを考えてみたくなってきた。ただ、モデル構築にはデータが必要。説明変数もなるべく多くあった方が良い。幸い日時の株価のデータはググれば簡単に手に入る。しかし、当然ながら欲しいデータがない場合もある。例えば、曜日とか(株価予測にどれくらい影響あるかはまだ調べてないけど)。。ただ、曜日についは日付データがあればRで簡単に取得できることが分かったので、その方法をご紹介。

◇ここから本題

目的:日付から曜日を取得
方法:weekdays(dt.data$time)
補足:株価データの取得先(http://k-db.com/stocks/

・方法

> #データを読み込む
> dt.data <- read.csv(file("stocks_8411-T_1d_2017.csv",encoding = 'cp932'))
>
> #一部データの表示(こんなデータ)
> head(dt.data)
        日付  始値  高値  安値  終値    出来高    売買代金
1 2017-06-09 198.9 200.4 198.1 199.7 156941400 31296039870
2 2017-06-08 198.3 200.5 197.2 197.4 173075000 34342113170
3 2017-06-07 196.0 197.7 195.2 197.0 105695500 20771395690
4 2017-06-06 197.0 198.6 196.3 196.7  99978900 19742685840
5 2017-06-05 197.6 197.9 196.4 197.0 106257500 20945506730
6 2017-06-02 195.1 200.9 195.0 200.1 175604300 34933279840
>
> #日付をオブジェクト化しないとエラーが出る
> weekdays(dt.data$日付)
 UseMethod("weekdays") でエラー:
   'weekdays' をクラス "factor" のオブジェクトに適用できるようなメソッドがありません
>
> #日付をas.POSIXltでオブジェクト化(as.DATEでも良い)
> dt.data$time <- as.POSIXlt(dt.data$日付, format="%Y-%m-%d")
>
> #曜日を取得
> dt.data$weekdays <- weekdays(dt.data$time)
>
> #結果
> head(dt.data)
        日付  始値  高値  安値  終値    出来高    売買代金       time weekdays
1 2017-06-09 198.9 200.4 198.1 199.7 156941400 31296039870 2017-06-09   金曜日
2 2017-06-08 198.3 200.5 197.2 197.4 173075000 34342113170 2017-06-08   木曜日
3 2017-06-07 196.0 197.7 195.2 197.0 105695500 20771395690 2017-06-07   水曜日
4 2017-06-06 197.0 198.6 196.3 196.7  99978900 19742685840 2017-06-06   火曜日
5 2017-06-05 197.6 197.9 196.4 197.0 106257500 20945506730 2017-06-05   月曜日
6 2017-06-02 195.1 200.9 195.0 200.1 175604300 34933279840 2017-06-02   金曜日
>

◇その他:日付関連の投稿



つぶやき
メモリ32GB以上のノートPCほしいなー。重さ800g以下で。。


0 件のコメント :

コメントを投稿