LoginSignup
5
2

More than 3 years have passed since last update.

Rの時刻変換と日の差分【lubridate, Time Intervals, Differences day】

Posted at

時刻変換する方法は色々ある。

Rの中で時刻データとして変換してやると、

https://stat.ethz.ch/R-manual/R-devel/library/base/html/difftime.html

ここに乗っているようなことができる。
自分でちょこちょこ調べる周辺まとめておく。

日の差分を求めることが今回の目的

as.Dateで

start <- as.Date("20200101", format="%Y%m%d")
end <- as.Date("20200201", format="%Y%m%d")

end - start
Time difference of 31 days

difftime関数も同じことやっている

difftime(end, start)

as.POSIXでも

start <- as.POSIXct("20200101", format="%Y%m%d")
end <- as.POSIXct("20200201", format="%Y%m%d")
difftime(end, start)
Time difference of 31 days

lubridateほんと最高

library(lubridate)

start <- ymd("20200101")
end <- ymd("20200201")

difftime(end, start)
Time difference of 31 days

as.numericで数字に直す

as.numeric(difftime(end, start))
[1] 31

おまけ

気持ちを察してくれるlubridateさん

ymd("20200501")
[1] "2020-05-01"
ydm("20200501")
[1] "2020-01-05"
mdy("08202000")
[1] "2000-08-20"
ymd_hms("20200201003059", tz="Japan")
[1] "2020-02-01 00:30:59 JST" 
ymd_h("2020020120", tz="Japan")
[1] "2020-02-01 20:00:00 JST"

曜日も出してくれる優しいヤツ

wday(ymd("20200501"))
[1] 6
wday(ymd("20200502"))
[1] 7
wday(ymd("20200503"))
[1] 1

ちなみに
1が月曜日
7が日曜日

lubridateさんホント最高
他にも差分をとる方法は色々あるので以下参照

https://lubridate.tidyverse.org/
5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2