From 5ad1eca391e6061ef43256ac6f9cd8e250bb91f5 Mon Sep 17 00:00:00 2001 From: Hadley Wickham Date: Thu, 11 Aug 2022 17:32:49 -0500 Subject: [PATCH] Polish date times --- datetimes.qmd | 210 ++++++++++++++++++------------ diagrams/datetimes-arithmetic.png | Bin 74859 -> 0 bytes diagrams/datetimes.graffle | Bin 4046 -> 0 bytes 3 files changed, 128 insertions(+), 82 deletions(-) delete mode 100644 diagrams/datetimes-arithmetic.png delete mode 100644 diagrams/datetimes.graffle diff --git a/datetimes.qmd b/datetimes.qmd index c5ee212..03ee32a 100644 --- a/datetimes.qmd +++ b/datetimes.qmd @@ -5,6 +5,9 @@ #| echo: false source("_common.R") status("polishing") + +# https://github.com/tidyverse/lubridate/issues/1058 +options(warnPartialMatchArgs = FALSE) ``` ## Introduction @@ -13,15 +16,14 @@ This chapter will show you how to work with dates and times in R. At first glance, dates and times seem simple. You use them all the time in your regular life, and they don't seem to cause much confusion. However, the more you learn about dates and times, the more complicated they seem to get. -To warm up, try these three seemingly simple questions: +To warm up think about how many days there are in a year, and how many hours there are in a day. -- Does every year have 365 days? -- Does every day have 24 hours? -- Does every minute have 60 seconds? +You probably remembered that most years have 365 days, but leap years have 366. +Do you know the full rule for determining if a year is a leap year[^datetimes-1]? +The number of hours in a day is a little less obvious: most days have 24 hours, but if you use daylight saving time (DST), one day each year has 23 hours and another has 25. -We're sure you know that not every year has 365 days, but do you know the full rule for determining if a year is a leap year? -(It has three parts.) You might have remembered that many parts of the world use daylight savings time (DST), so that some days have 23 hours, and others have 25. -You might not have known that some minutes have 61 seconds because every now and then leap seconds are added because the Earth's rotation is gradually slowing down. +[^datetimes-1]: A year is a leap year if it's divisible by 4, unless it's also divisible by 100, except if it's also divisible by 400. + In other words, in every set of 400 years, there's 97 leap years. Dates and times are hard because they have to reconcile two physical phenomena (the rotation of the Earth and its orbit around the sun) with a whole raft of geopolitical phenomena including months, time zones, and DST. This chapter won't teach you every last detail about dates and times, but it will give you a solid grounding of practical skills that will help you with common data analysis challenges. @@ -34,7 +36,6 @@ We will also need nycflights13 for practice data. ```{r} #| message: false - library(tidyverse) library(lubridate) @@ -53,9 +54,9 @@ There are three types of date/time data that refer to an instant in time: - A **date-time** is a date plus a time: it uniquely identifies an instant in time (typically to the nearest second). Tibbles print this as ``. - Elsewhere in R these are called POSIXct, but that's not a very useful name. + Base R calls these POSIXct, but doesn't exactly trip off the tongue. -In this chapter we are only going to focus on dates and date-times as R doesn't have a native class for storing times. +In this chapter we are going to focus on dates and date-times as R doesn't have a native class for storing times. If you need one, you can use the **hms** package. You should always use the simplest possible data type that works for your needs. @@ -93,14 +94,6 @@ mdy("January 31st, 2017") dmy("31-Jan-2017") ``` -These functions also take unquoted numbers. -This is the most concise way to create a single date/time object, as you might need when filtering date/time data. -`ymd()` is short and unambiguous: - -```{r} -ymd(20170131) -``` - `ymd()` and friends create dates. To create a date-time, add an underscore and one or more of "h", "m", and "s" to the name of the parsing function: @@ -112,7 +105,7 @@ mdy_hm("01/31/2017 08:01") You can also force the creation of a date-time from a date by supplying a timezone: ```{r} -ymd(20170131, tz = "UTC") +ymd("2017-01-31", tz = "UTC") ``` ### From individual components @@ -155,9 +148,17 @@ flights_dt <- flights |> flights_dt ``` -With this data, we can visualise the distribution of departure times across the year: +With this data, we can visualize the distribution of departure times across the year: ```{r} +#| fig.alt: > +#| A frequency polyon with departure time (Jan-Dec 2013) on the x-axis +#| and number of flights on the y-axis (0-1000). The frequency polygon +#| is binned by day so you see a time series of flights by day. The +#| pattern is dominated by a weekly pattern; there are fewer flights +#| on weekends. The are few days that stand out as having a surprisingly +#| few flights in early Februrary, early July, late November, and late +#| December. flights_dt |> ggplot(aes(dep_time)) + geom_freqpoly(binwidth = 86400) # 86400 seconds = 1 day @@ -166,6 +167,12 @@ flights_dt |> Or within a single day: ```{r} +#| fig.alt: > +#| A frequency polygon with departure time (6am - midnight Jan 1) on the +#| x-axis, number of flights on the y-axis (0-17), binned into 10 minute +#| increments. It's hard to see much pattern because of high variability, +#| but most bins have 8-12 flights, and there are markedly fewer flights +#| before 6am and after 8pm. flights_dt |> filter(dep_time < ymd(20130102)) |> ggplot(aes(dep_time)) + @@ -227,7 +234,7 @@ The next section will look at how arithmetic works with date-times. You can pull out individual parts of the date with the accessor functions `year()`, `month()`, `mday()` (day of the month), `yday()` (day of the year), `wday()` (day of the week), `hour()`, `minute()`, and `second()`. ```{r} -datetime <- ymd_hms("2016-07-08 12:34:56") +datetime <- ymd_hms("2026-07-08 12:34:56") year(datetime) month(datetime) @@ -248,6 +255,12 @@ wday(datetime, label = TRUE, abbr = FALSE) We can use `wday()` to see that more flights depart during the week than on the weekend: ```{r} +#| fig-alt: > +#| A bar chart with days of the week on the x-axis and number of +#| flights on the y-axis. Monday-Friday have roughly the same number of +#| flights, ~48,0000, decreasingly slightly over the course of the week. +#| Sunday is a little lower (~45,000), and Saturday is much lower +#| (~38,000). flights_dt |> mutate(wday = wday(dep_time, label = TRUE)) |> ggplot(aes(x = wday)) + @@ -258,6 +271,13 @@ There's an interesting pattern if we look at the average departure delay by minu It looks like flights leaving in minutes 20-30 and 50-60 have much lower delays than the rest of the hour! ```{r} +#| fig-alt: > +#| A line chart with minute of actual departure (0-60) on the x-axis and +#| average delay (4-20) on the y-axis. Average delay starts at (0, 12), +#| steadily increases to (18, 20), then sharply drops, hitting at minimum +#| at ~23 minute past the hour and 9 minutes of delay. It then increases +#| again to (17, 35), and sharply decreases to (55, 4). It finishes off +#| with an increase to (60, 9). flights_dt |> mutate(minute = minute(dep_time)) |> group_by(minute) |> @@ -271,6 +291,11 @@ flights_dt |> Interestingly, if we look at the *scheduled* departure time we don't see such a strong pattern: ```{r} +#| fig-alt: > +#| A line chart with minute of scheduled departure (0-60) on the x-axis +#| and average delay (4-16). There is relatively little pattern, just a +#| small suggestion that the average delay decreases from maybe 10 minutes +#| to 8 minutes over the course of the hour. sched_dep <- flights_dt |> mutate(minute = minute(sched_dep_time)) |> group_by(minute) |> @@ -287,6 +312,12 @@ Well, like much data collected by humans, there's a strong bias towards flights Always be alert for this sort of pattern whenever you work with data that involves human judgement! ```{r} +#| fig-alt: > +#| A line plot with departure minute (0-60) on the x-axis and number of +#| flights (0-60000) on the y-axis. Most flights are scheduled to depart +#| on either the hour (~60,000) or the half hour (~35,000). Otherwise, +#| all most all flights are scheduled to depart on multiples of five, +#| with a few extra at 15, 45, and 55 minutes. ggplot(sched_dep, aes(minute, n)) + geom_line() ``` @@ -298,22 +329,55 @@ Each function takes a vector of dates to adjust and then the name of the unit ro This, for example, allows us to plot the number of flights per week: ```{r} +#| fig-alt: > +#| A line plot with week (Jan-Dec 2013) on the x-axis and number of +#| flights (2,000-7,000) on the y-axis. The pattern is fairly flat from +#| February to November with around 7,000 flights per week. There are +#| far fewer flights on the first (approximately 4,500 flights) and last +#| weeks of the year (approximately 2,500 flights). flights_dt |> count(week = floor_date(dep_time, "week")) |> ggplot(aes(week, n)) + - geom_line() + geom_line() + + geom_point() ``` -Computing the difference between a rounded and unrounded date can be particularly useful. - -### Setting components - -You can also use each accessor function to set the components of a date/time: +You can use rounding to show the distribution of flights across the course of a day by computing the difference between `dep_time` and the earliest instant of that day: ```{r} -(datetime <- ymd_hms("2016-07-08 12:34:56")) +#| fig-alt: > +#| A line plot with depature time on the x-axis. This is units of seconds +#| since midnight so it's hard to interpret. +flights_dt |> + mutate(dep_hour = dep_time - floor_date(dep_time, "day")) |> + ggplot(aes(dep_hour)) + + geom_freqpoly(binwidth = 60 * 30) +``` -year(datetime) <- 2020 +Computing the difference between a pair of date-times yields a difftime (more on that in @sec-intervals). We can convert that to an `hms` object to get a more useful x-axis: + +```{r} +#| fig-alt: > +#| A line plot with depature time (midnight to midnight) on the x-axis +#| and number of flights on the y-axis (0 to 15,000). There are very few +#| (<100) flights before 5am. The number of flights then rises rapidly +#| to 12,000 / hour, peaking at 15,000 at 9am, before falling to around +#| 8,000 / hour for 10am to 2pm. Number of flights then increases to +#| around 12,000 per hour until 8pm, when they rapidly drop again. +flights_dt |> + mutate(dep_hour = hms::as_hms(dep_time - floor_date(dep_time, "day"))) |> + ggplot(aes(dep_hour)) + + geom_freqpoly(binwidth = 60 * 30) +``` + +### Modifying components + +You can also use each accessor function to modify the components of a date/time: + +```{r} +(datetime <- ymd_hms("2026-07-08 12:34:56")) + +year(datetime) <- 2030 datetime month(datetime) <- 01 datetime @@ -321,33 +385,20 @@ hour(datetime) <- hour(datetime) + 1 datetime ``` -Alternatively, rather than modifying in place, you can create a new date-time with `update()`. -This also allows you to set multiple values at once. +Alternatively, rather than modifying an existing variabke, you can create a new date-time with `update()`. +This also allows you to set multiple values in one step: ```{r} -update(datetime, year = 2020, month = 2, mday = 2, hour = 2) +update(datetime, year = 2030, month = 2, mday = 2, hour = 2) ``` If values are too big, they will roll-over: ```{r} -ymd("2015-02-01") |> - update(mday = 30) -ymd("2015-02-01") |> - update(hour = 400) +update(ymd("2023-02-01"), mday = 30) +update(ymd("2023-02-01"), hour = 400) ``` -You can use `update()` to show the distribution of flights across the course of the day for every day of the year: - -```{r} -flights_dt |> - mutate(dep_hour = update(dep_time, yday = 1)) |> - ggplot(aes(dep_hour)) + - geom_freqpoly(binwidth = 300) -``` - -Setting larger components of a date to a constant is a powerful technique that allows you to explore patterns in the smaller components. - ### Exercises 1. How does the distribution of flight times within a day change over the course of the year? @@ -386,7 +437,7 @@ In R, when you subtract two dates, you get a difftime object: ```{r} # How old is Hadley? -h_age <- today() - ymd(19791014) +h_age <- today() - ymd("1979-10-14") h_age ``` @@ -431,15 +482,15 @@ last_year <- today() - dyears(1) However, because durations represent an exact number of seconds, sometimes you might get an unexpected result: ```{r} -one_pm <- ymd_hms("2016-03-12 13:00:00", tz = "America/New_York") +one_pm <- ymd_hms("2026-03-12 13:00:00", tz = "America/New_York") one_pm one_pm + ddays(1) ``` -Why is one day after 1pm on March 12, 2pm on March 13?! +Why is one day after 1pm March 12, 2pm March 13? If you look carefully at the date you might also notice that the time zones have changed. -Because of DST, March 12 only has 23 hours, so if we add a full days worth of seconds we end up with a different time. +March 12 only has 23 hours because it's when DST starts, so if we add a full days worth of seconds we end up with a different time. ### Periods @@ -455,13 +506,9 @@ one_pm + days(1) Like durations, periods can be created with a number of friendly constructor functions. ```{r} -seconds(15) -minutes(10) hours(c(12, 24)) days(7) months(1:6) -weeks(3) -years(1) ``` You can add and multiply periods: @@ -476,8 +523,8 @@ Compared to durations, periods are more likely to do what you expect: ```{r} # A leap year -ymd("2016-01-01") + dyears(1) -ymd("2016-01-01") + years(1) +ymd("2024-01-01") + dyears(1) +ymd("2024-01-01") + years(1) # Daylight Savings Time one_pm + ddays(1) @@ -500,7 +547,7 @@ We can fix this by adding `days(1)` to the arrival time of each overnight flight flights_dt <- flights_dt |> mutate( overnight = arr_time < dep_time, - arr_time = arr_time + days(ifelse(overnight, 0, 1)), + arr_time = arr_time + days(if_else(overnight, 0, 1)), sched_arr_time = sched_arr_time + days(overnight * 1) ) ``` @@ -512,7 +559,7 @@ flights_dt |> filter(overnight, arr_time < dep_time) ``` -### Intervals +### Intervals {#sec-intervals} It's obvious what `dyears(1) / ddays(365)` should return: one, because durations are always represented by a number of seconds, and a duration of a year is defined as 365 days worth of seconds. @@ -531,15 +578,18 @@ An interval is a pair of starting and ending date times, or you can think of it You can create an interval by writing `start %--% end`: ```{r} -to_next_year <- today() %--% (today() + years(1)) -to_next_year +y2023 <- ymd("2023-01-01") %--% ymd("2024-01-01") +y2024 <- ymd("2024-01-01") %--% ymd("2025-01-01") + +y2023 +y2024 ``` -You could then divide it by a duration or a period: +You could then divide it by `days()` to find out how many days fit in the year: ```{r} -to_next_year / ddays(1) -to_next_year / months(1) +y2023 / days(1) +y2024 / days(1) ``` ### Summary @@ -548,17 +598,6 @@ How do you pick between duration, periods, and intervals? As always, pick the simplest data structure that solves your problem. If you only care about physical time, use a duration; if you need to add human times, use a period; if you need to figure out how long a span is in human units, use an interval. -@fig-dt-algebra summarizes permitted arithmetic operations between the different data types. - -```{r} -#| label: fig-dt-algebra -#| echo: false -#| fig-cap: > -#| The allowed arithmetic operations between pairs of date/time classes. - -knitr::include_graphics("diagrams/datetimes-arithmetic.png") -``` - ### Exercises 1. Explain `days(overnight * 1)` to someone who has just started learning R. @@ -576,17 +615,19 @@ knitr::include_graphics("diagrams/datetimes-arithmetic.png") Time zones are an enormously complicated topic because of their interaction with geopolitical entities. Fortunately we don't need to dig into all the details as they're not all important for data analysis, but there are a few challenges we'll need to tackle head on. + + The first challenge is that everyday names of time zones tend to be ambiguous. For example, if you're American you're probably familiar with EST, or Eastern Standard Time. However, both Australia and Canada also have EST! To avoid confusion, R uses the international standard IANA time zones. -These use a consistent naming scheme "/", typically in the form "\/\" (there are a few exceptions because not every country lies on a continent). +These use a consistent naming scheme `{area}/{location}`, typically in the form `{continent}/{city}` or `{ocean}/{city}`. Examples include "America/New_York", "Europe/Paris", and "Pacific/Auckland". You might wonder why the time zone uses a city, when typically you think of time zones as associated with a country or region within a country. This is because the IANA database has to record decades worth of time zone rules. -In the course of decades, countries change names (or break apart) fairly frequently, but city names tend to stay the same. -Another problem is that the name needs to reflect not only the current behaviour, but also the complete history. +Over the course of decades, countries change names (or break apart) fairly frequently, but city names tend to stay the same. +Another problem is that the name needs to reflect not only the current behavior, but also the complete history. For example, there are time zones for both "America/New_York" and "America/Detroit". These cities both currently use Eastern Standard Time but in 1969-1972 Michigan (the state in which Detroit is located), did not follow DST, so it needs a different name. It's worth reading the raw time zone database (available at ) just to read some of these stories! @@ -610,9 +651,14 @@ In R, the time zone is an attribute of the date-time that only controls printing For example, these three objects represent the same instant in time: ```{r} -(x1 <- ymd_hms("2015-06-01 12:00:00", tz = "America/New_York")) -(x2 <- ymd_hms("2015-06-01 18:00:00", tz = "Europe/Copenhagen")) -(x3 <- ymd_hms("2015-06-02 04:00:00", tz = "Pacific/Auckland")) +x1 <- ymd_hms("2024-06-01 12:00:00", tz = "America/New_York") +x1 + +x2 <- ymd_hms("2024-06-01 18:00:00", tz = "Europe/Copenhagen") +x2 + +x3 <- ymd_hms("2024-06-02 04:00:00", tz = "Pacific/Auckland") +x3 ``` You can verify that they're the same time using subtraction: @@ -623,7 +669,7 @@ x1 - x3 ``` Unless otherwise specified, lubridate always uses UTC. -UTC (Coordinated Universal Time) is the standard time zone used by the scientific community and roughly equivalent to its predecessor GMT (Greenwich Mean Time). +UTC (Coordinated Universal Time) is the standard time zone used by the scientific community and is roughly equivalent to GMT (Greenwich Mean Time). It does not have DST, which makes a convenient representation for computation. Operations that combine date-times, like `c()`, will often drop the time zone. In that case, the date-times will display in your local time zone: diff --git a/diagrams/datetimes-arithmetic.png b/diagrams/datetimes-arithmetic.png deleted file mode 100644 index eb36c47e41aa125ad10736fea855f7dffae12893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74859 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 diff --git a/diagrams/datetimes.graffle b/diagrams/datetimes.graffle deleted file mode 100644 index 83857950edfd29c01180000425fbe4ccbdb19156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4046 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 XLy!9j3oMQ9QUHPjzN17qJ>CBR2;s