Our illustrated penguins are ending their tour with the lubridate package! The photo backdrop is a snowy Antarctic wonderland featuring a Gentoo penguin with outstretched flippers

lubridate: info



lubridate helps us work with dates and times, including

  • a date like August 31, 2022
  • a time like 10:35 am
  • a date-time like 2022-08-31 10:35:00

You can…

  • convert strings or numbers to date-times
  • get and set components of a date-time
  • round date-times
  • add or subtract periods to model events that happen at specific clock times
  • add or substract durations to model a physical process
  • work with time intervals

R4DS book cover


R for Data Science: Ch 16 Dates and times

Package documentation: https://lubridate.tidyverse.org

lubridate: exercise

Recall that palmperpenguins includes raw data as well

penguins_raw <- palmerpenguins::penguins_raw
penguins_raw
# A tibble: 344 × 17
   studyName `Sample Number` Species         Region Island Stage `Individual ID`
   <chr>               <dbl> <chr>           <chr>  <chr>  <chr> <chr>          
 1 PAL0708                 1 Adelie Penguin… Anvers Torge… Adul… N1A1           
 2 PAL0708                 2 Adelie Penguin… Anvers Torge… Adul… N1A2           
 3 PAL0708                 3 Adelie Penguin… Anvers Torge… Adul… N2A1           
 4 PAL0708                 4 Adelie Penguin… Anvers Torge… Adul… N2A2           
 5 PAL0708                 5 Adelie Penguin… Anvers Torge… Adul… N3A1           
 6 PAL0708                 6 Adelie Penguin… Anvers Torge… Adul… N3A2           
 7 PAL0708                 7 Adelie Penguin… Anvers Torge… Adul… N4A1           
 8 PAL0708                 8 Adelie Penguin… Anvers Torge… Adul… N4A2           
 9 PAL0708                 9 Adelie Penguin… Anvers Torge… Adul… N5A1           
10 PAL0708                10 Adelie Penguin… Anvers Torge… Adul… N5A2           
# ℹ 334 more rows
# ℹ 10 more variables: `Clutch Completion` <chr>, `Date Egg` <date>,
#   `Culmen Length (mm)` <dbl>, `Culmen Depth (mm)` <dbl>,
#   `Flipper Length (mm)` <dbl>, `Body Mass (g)` <dbl>, Sex <chr>,
#   `Delta 15 N (o/oo)` <dbl>, `Delta 13 C (o/oo)` <dbl>, Comments <chr>

In the raw data, Date Egg is the date that a penguin nest in the study was observed with 1 egg

Check out ?penguins_raw to learn more about the other variables in this dataset

penguins_raw |> select(Species, Sex, `Date Egg`)
# A tibble: 344 × 3
   Species                             Sex    `Date Egg`
   <chr>                               <chr>  <date>    
 1 Adelie Penguin (Pygoscelis adeliae) MALE   2007-11-11
 2 Adelie Penguin (Pygoscelis adeliae) FEMALE 2007-11-11
 3 Adelie Penguin (Pygoscelis adeliae) FEMALE 2007-11-16
 4 Adelie Penguin (Pygoscelis adeliae) <NA>   2007-11-16
 5 Adelie Penguin (Pygoscelis adeliae) FEMALE 2007-11-16
 6 Adelie Penguin (Pygoscelis adeliae) MALE   2007-11-16
 7 Adelie Penguin (Pygoscelis adeliae) FEMALE 2007-11-15
 8 Adelie Penguin (Pygoscelis adeliae) MALE   2007-11-15
 9 Adelie Penguin (Pygoscelis adeliae) <NA>   2007-11-09
10 Adelie Penguin (Pygoscelis adeliae) <NA>   2007-11-09
# ℹ 334 more rows

We can use year(), month(), and day() to extract different components from Date Egg

In addition, month() provides some options to let us decide whether we want the month displayed as a character string, and whether we want that string abbreviated

penguins_raw |> 
  select(Species, Sex, `Date Egg`) |> 
  mutate(Year = year(`Date Egg`),
         Month = month(`Date Egg`, label = TRUE, abbr = FALSE),
         Day = day(`Date Egg`))
# A tibble: 344 × 6
   Species                             Sex    `Date Egg`  Year Month      Day
   <chr>                               <chr>  <date>     <dbl> <ord>    <int>
 1 Adelie Penguin (Pygoscelis adeliae) MALE   2007-11-11  2007 November    11
 2 Adelie Penguin (Pygoscelis adeliae) FEMALE 2007-11-11  2007 November    11
 3 Adelie Penguin (Pygoscelis adeliae) FEMALE 2007-11-16  2007 November    16
 4 Adelie Penguin (Pygoscelis adeliae) <NA>   2007-11-16  2007 November    16
 5 Adelie Penguin (Pygoscelis adeliae) FEMALE 2007-11-16  2007 November    16
 6 Adelie Penguin (Pygoscelis adeliae) MALE   2007-11-16  2007 November    16
 7 Adelie Penguin (Pygoscelis adeliae) FEMALE 2007-11-15  2007 November    15
 8 Adelie Penguin (Pygoscelis adeliae) MALE   2007-11-15  2007 November    15
 9 Adelie Penguin (Pygoscelis adeliae) <NA>   2007-11-09  2007 November     9
10 Adelie Penguin (Pygoscelis adeliae) <NA>   2007-11-09  2007 November     9
# ℹ 334 more rows