Rで解析:日付けや時間データの取り扱いに便利です。「chron」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

データ解析では時系列データを取り扱うことがあります。日付け・時間データ用のクラスとして”DATA”や”POSIXlt”,”POSIXct”がありますが、以外と操作が手間です。そんな手間を軽減するパッケージを紹介します。直感的に日付けや時間データを操作できるのでオススメです。

パッケージバージョンは2.3-58。実行コマンドはR version 4.2.2で確認しています。

スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("chron")

実行コマンドの紹介

詳細はコメントを確認してください。

#パッケージの読み込み
library("chron")

#日付けデータの配列を作成:seq.datesコマンド
#seq.dates(from = 開始日, to = 終了日, by = 繰り返し基準, length = 配列の長さ)
#byオプション:"days", "weeks", "months", "years"の設定が可能
seq.dates("01/01/2015", "06/20/2015", by = "months")
[1] 01/01/15 02/01/15 03/01/15 04/01/15 05/01/15 06/01/15

#lengthオプション:長さを指定して作成
seq.dates("01/01/2015", by = "months", length = 15)
[1] 01/01/15 02/01/15 03/01/15 04/01/15 05/01/15 06/01/15 07/01/15 08/01/15 09/01/15 10/01/15 11/01/15
[12] 12/01/15 01/01/16 02/01/16 03/01/16

#日付けデータに変換:datesコマンド
#変換することで加算・加減ができます
dates("01/06/2015")
[1] 01/06/15

dates("01/06/2015") + 365
[1] 01/06/16

dates("01/06/2015") - 365
[1] 01/06/14

#日付けデータの間隔を計算:cut.datesコマンド
#factorで結果が計算されます
#cut(x = データ, breaks = 整形方法, start.on.monday = TRUE)
#breaksオプション:"days", "weeks", "months", "year"の設定が可能
TestData <- seq.dates("01/01/2015", "06/20/2015", by = "months")

#日で計算
cut(TestData, "days")
[1] day 1   day 32  day 60  day 91  day 121 day 152
Levels: day 1 < day 2 < ... < day 152

#月で計算
cut(TestData, "months")
[1] Jan 15 Feb 15 Mar 15 Apr 15 May 15 Jun 15
Levels: Jan 15 < Feb 15 < Mar 15 < Apr 15 < May 15 < Jun 15

#1970年1月1日から指定した日までの間隔を計算:julianコマンド
julian(06, 20, 2015)
[1] 16606

#julianコマンドで取得した値から月日年を取得:month.day.yearコマンド
#結果はlistで出力されます
month.day.year(1)
$month
[1] 1
$day
[1] 2
$year
[1] 1970

#数値の小数点を切り捨て,unitsで指定した形式へ変換
#unitsオプション:"days", "hours", "minutes", "seconds"が可能です
DHM <- dates("07/01/78") + trunc(sample(1100.8886:2000.3335, 150, replace = TRUE), "days")

#日の出現数をプロット
#plot(days(DHM), col = "#4b61ba")

#曜日の出現数をプロット
plot(weekdays(DHM), col = "#4b61ba")

#月の出現数をプロット
#plot(months(DHM), col = "#4b61ba")

出力例

・曜日の出現数をプロット

MonthPlot

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました