Dates and times are abundant in data and essential for answering questions that start with when, how long, or how often. However, they can be tricky, as they come in a variety of formats and can behave in unintuitive ways. This course teaches you the essentials of parsing, manipulating, and computing with dates and times in R. By the end, you'll have mastered the lubridate package, a member of the tidyverse, specifically designed to handle dates and times. You'll also have applied your new skills to explore how often R versions are released, when the weather is good in Auckland (the birthplace of R), and how long monarchs ruled in Britain.
Dates and Times in RFree
R doesn't know something is a date or time unless you tell it. In this chapter you'll learn about some of the ways R stores dates and times by exploring how often R versions are released, and how quickly people download them. You'll also get a sneak peek at what you'll learn in the following chapters.
Parsing and Manipulating Dates and Times with lubridate
Dates and times come in a huge assortment of formats, so your first hurdle is often to parse the format you have into an R datetime. This chapter teaches you to import dates and times with the lubridate package. You'll also learn how to extract parts of a datetime. You'll practice by exploring the weather in R's birthplace, Auckland NZ.Parsing dates with lubridate50 xpSelecting the right parsing function100 xpSpecifying an order with `parse_date_time()`100 xpWeather in Auckland50 xpImport daily weather data100 xpImport hourly weather data100 xpExtracting parts of a datetime50 xpWhat can you extract?100 xpAdding useful labels100 xpExtracting for plotting100 xpExtracting for filtering and summarizing100 xpRounding datetimes50 xpPractice rounding100 xpRounding with the weather data100 xp
Arithmetic with Dates and Times
Getting datetimes into R is just the first step. Now that you know how to parse datetimes, you need to learn how to do calculations with them. In this chapter, you'll learn the different ways of representing spans of time with lubridate and how to leverage them to do arithmetic on datetimes. By the end of the chapter, you'll have calculated how long it's been since the first man stepped on the moon, generated sequences of dates to help schedule reminders, calculated when an eclipse occurs, and explored the reigns of monarch's of England (and which ones might have seen Halley's comet!).Taking differences of datetimes50 xpHow long has it been?100 xpHow many seconds are in a day?100 xpTime spans.50 xpAdding or subtracting a time span to a datetime100 xpDuration or Period?50 xpArithmetic with timespans100 xpGenerating sequences of datetimes100 xpThe tricky thing about months100 xpIntervals50 xpExamining intervals. Reigns of kings and queens100 xpComparing intervals and datetimes100 xpConverting to durations and periods100 xp
Problems in practice
You now know most of what you need to tackle data that includes dates and times, but there are a few other problems you might encounter in practice. In this final chapter you'll learn a little more about these problems by returning to some of the earlier data examples and learning how to handle time zones, deal with times when you don't care about dates, parse dates quickly, and output dates and times.Time zones50 xpSetting the timezone100 xpViewing in a timezone100 xpTimezones in the weather data100 xpTimes without dates100 xpMore on importing and exporting datetimes50 xpFast parsing with fasttime100 xpFast parsing with lubridate::fast_strptime100 xpOutputting pretty dates and times100 xpWrap-up50 xp
Charlotte WickhamSee More
Assistant Professor at Oregon State University
Charlotte is an Assistant Professor in the Department of Statistics at Oregon State University and an avid R programmer with a passion for teaching. Her interests lie in spatiotemporal data, statistical graphics and computing, and environmental statistics.