lubridate: Make dealing with dates a little easier


> library(lubridate)

Attaching package: 'lubridate'
The following object is masked from 'package:haven':

The following object is masked from 'package:base':


バージョン: 1.5.6

関数名 概略
%m+% Add and subtract months to a date without exceeding the last day of the new month
%within% Tests whether a date or interval falls within an interval
DateUpdate Changes the components of a date object
Duration-class Duration class
Interval-class Interval class
Period-class Period class
Timespan-class Timespan class
add_epoch_to_date Add epochs to dates
am Does date time occur in the am or pm?
as.duration Change an object to a duration.
as.interval Change an object to an interval.
as.period Change an object to a period.
ceiling_date Round date-times up.
date_decimal Converts a decimal to a date.
days_in_month Get the number of days in the month of a date-time.
decimal_date Converts a date to a decimal of its year.
dseconds Quickly create exact time spans.
dst Get Daylight Savings Time indicator of a date-time.
duration Create a duration object.
fit_to_timeline Fit a POSIXlt date-time to the timeline
floor_date Round date-times down.
force_tz Replace time zone to create new date-time
guess_formats Guess formats from the supplied date-time character vector.
here The current time in your local timezone
hm Create a period with the specified number of hours and minutes
hms Create a period with the specified hours, minutes, and seconds
hour Get/set hours component of a date-time.
int_aligns Test if two intervals share an endpoint
int_diff Extract the intervals within a vector of date-times
int_end Access and change the end date of an interval
int_flip Flip the direction of an interval
int_length Get the length of an interval in seconds
int_overlaps Test if two intervals overlap
int_shift Shift an interval along the timeline
int_standardize Ensures all intervals in an interval object are positive
int_start Access and change the start date of an interval
is.Date Is x a Date object?
is.POSIXt Is x a POSIXct or POSIXlt object?
is.difftime Is x a difftime object?
is.duration Is x a duration object?
is.instant Is x a date-time object?
is.interval Is x an Interval object?
is.period Is x a period object?
is.timespan Is x a length of time?
lakers Lakers 2008-2009 basketball data set
leap_year Is a year a leap year?
lubridate Dates and times made easy with lubridate
lubridate_formats Lubridate format orders used in 'stamp'
make_difftime Makes a difftime object from a given number of seconds
minute Get/set minutes component of a date-time.
month Get/set months component of a date-time.
ms Create a period with the specified number of minutes and seconds
new_difftime Create a difftime object.
new_duration Create a duration object.
new_epoch Create an epoch object
new_interval Create an interval object.
new_period Create a period object.
now The current time
olson_time_zones Names of available time zones
origin 1970-01-01 UTC
parse_date_time Parse character and numeric date-time vectors with user friendly order formats.
period Create a period object.
period_to_seconds Convert a period to the number of seconds it appears to represent
pretty_dates Computes attractive axis breaks for date-time data
quarter Get the fiscal quarter of a date-time.
rollback Roll back date to last day of previous month
round_date Rounding for date-times.
second Get/set seconds component of a date-time.
seconds Quickly create relative timespans.
seconds_to_period Contrive a period from a given number of seconds
stamp Format dates and times based on human-friendly templates.
sundays Quickly create common epoch objects
timespan Description of time span classes in lubridate.
today The current date
tz Get/set time zone component of a date-time.
wday Get/set days component of a date-time.
week Get/set weeks component of a date-time.
with_tz Get date-time in a different time zone
yday Get/set days component of a date-time.
year Get/set years component of a date-time.
ymd Parse dates according to the order in that year, month, and day elements appear in the input vector.
ymd_hms Parse dates that have hours, minutes, or seconds elements.




  • object
  • years
  • months
  • ydays
  • wdays
  • mdays
  • days
  • hours
  • minutes
  • seconds
  • tsz
  • ...
> (x <- now())
[1] "2016-05-20 08:13:46 JST"
> update(x, year = 2010, month = 1, mday = 1)
[1] "2010-01-01 08:13:46 JST"
> update(x, month = 1, mday = 1)
[1] "2016-01-01 08:13:46 JST"



> am(x)
[1] TRUE
> pm(x)



ref) floor_date

> (x <- now())
[1] "2016-05-20 08:13:46 JST"
> ceiling_date(x, "second")
[1] "2016-05-20 08:13:47 JST"
> ceiling_date(x, "hour")
[1] "2016-05-20 09:00:00 JST"
> ceiling_date(x, "year")
[1] "2017-01-01 JST"


ref) decimal_date()

> date <- ymd("2015-10-10")
> decimal_date(date) %>% date_decimal()
[1] "2015-10-09 23:59:59 UTC"



ref) date_decimal()

> date <- ymd("2015-10-10")
> decimal_date(date)
[1] 2015.773



> dminutes(2)
[1] "120s (~2 minutes)"



> (x <- now())
[1] "2016-05-20 08:13:47 JST"
> floor_date(x, "second")
[1] "2016-05-20 08:13:47 JST"
> floor_date(x, "minute")
[1] "2016-05-20 08:13:00 JST"
> floor_date(x, "day")
[1] "2016-05-20 JST"
> floor_date(x, "year")
[1] "2016-01-01 JST"



> (x <- now(tzone = "Asia/Tokyo"))
[1] "2016-05-20 08:13:47 JST"
> force_tz(x, tzone = "GMT")
[1] "2016-05-20 08:13:47 GMT"



> here()
[1] "2016-05-20 08:13:47 JST"



> int1 <- new_interval(ymd("2001-01-01"), ymd("2002-01-01"))
'new_interval' is deprecated; use 'interval' instead. Deprecated in version '1.5.0'.
> int2 <- new_interval(ymd("2001-06-01"), ymd("2002-06-01"))
'new_interval' is deprecated; use 'interval' instead. Deprecated in version '1.5.0'.
> int_overlaps(int1, int2)
[1] TRUE
> int3 <- new_interval(ymd("2003-01-01"), ymd("2004-01-01"))
'new_interval' is deprecated; use 'interval' instead. Deprecated in version '1.5.0'.
> int_overlaps(int1, int3)



> x <- as.Date("2009-08-02")
> leap_year(x)
> leap_year(2009)
> leap_year(2008)
[1] TRUE


> minutes(2)
[1] "2M 0S"


> month(today(), label = TRUE, abbr = FALSE)
[1] May
12 Levels: January < February < March < April < May < June < ... < December


> dob <- ymd(19891126)
> new_interval(start = dob, end = today())
'new_interval' is deprecated; use 'interval' instead. Deprecated in version '1.5.0'.
[1] 1989-11-26 UTC--2016-05-20 UTC
> new_interval(dob, today(), tzone = "Asia/Tokyo") / years(1)
'new_interval' is deprecated; use 'interval' instead. Deprecated in version '1.5.0'.
Remainder cannot be expressed as fraction of a period.
  Performing %/%.
estimate only: convert periods to intervals for accuracy
[1] 26



> now()
[1] "2016-05-20 08:13:47 JST"
> now(tzone = olson_time_zones()[10])
[1] "2016-05-20 01:13:47 CAT"



> str(olson_time_zones())
 chr [1:421] "Africa/Abidjan" "Africa/Accra" ...



> origin
[1] "1970-01-01 UTC"



> rollback(x)
[1] "2009-07-31"



> today()
[1] "2016-05-20"


> wday(today(), label = TRUE, abbr = FALSE)
[1] Friday
7 Levels: Sunday < Monday < Tuesday < Wednesday < Thursday < ... < Saturday


> week(today())
[1] 21


関数名を入れ替えて年月日を表示。y... 年、m... 月, d... 日。

> ymd("20150901")
[1] "2015-09-01"
> dmy("01092015")
[1] "2015-09-01"
> mdy("090115")
[1] "2015-09-01"


> ymd_hms(c("2013-01-24 19:39:07.880-0600",
+           "2013-01-24 19:39:07.880", "2013-01-24 19:39:07.880-06:00",
+           "2013-01-24 19:39:07.880-06", "2013-01-24 19:39:07.880Z"),
+         tz = "Asia/Tokyo")
Date in ISO8601 format; converting timezone from UTC to "Asia/Tokyo".
Date in ISO8601 format; converting timezone from UTC to "Asia/Tokyo".
Date in ISO8601 format; converting timezone from UTC to "Asia/Tokyo".
[1] "2013-01-25 10:39:07 JST" "2013-01-24 19:39:07 JST"
[3] "2013-01-25 10:39:07 JST" "2013-01-25 10:39:07 JST"
[5] "2013-01-25 04:39:07 JST"