R筋

プログラミング、金融、育児

【R】lubridateパッケージ

lubridateパッケージは日付の操作に役立つ様々な関数があります。
日付型からyear(),month(),day(),hour()などで
それぞれの部分を取り出せる関数がとても便利です。
他にも使用頻度が高いと思われるもののサンプルを紹介します。

#パッケージインストール
install.packages("lubridate")
#パッケージ読み込み
library(lubridate)
#システム時刻を取得
now <- Sys.time()#"2017-06-18 09:19:51 JST"
#午前か午後かを判定
am(now)#TRUE
pm(now)#FALSE
#うるう年判定
leap_year(now)#FALSE
#クオーター取得
quarter(now)#2
#先月末を取得
rollback(today())#"2017-05-31"

#day()
day(now) #18
wday(now,label=T)#sun
yday(now)#169 年初から
qday(nwo)#79 四半期から
#年初から何週目か
week(now)#25

#インターバル型を作る interval(x,start)
span <-interval(ymd("2017-01-01"),today())#
#インターバルの期間(秒)を計算
seconds <- as.duration(span)#"14515200s (~24 weeks)"
#インターバルの期間(日数)を計算
as.numeric(seconds,"days")#168
#期間(日数)をperiod型で計算
s.period(span,"days")#"168d 0H 0M 0S"
#秒表記をseconds_to_periodにより変換も可能
seconds_to_period(seconds)#"168d 0H 0M 0S"

参考
https://cran.r-project.org/web/packages/lubridate/lubridate.pdf