Extract Dates from Time Series in R (2 Examples)
In this R post you’ll learn how to get the dates of a time series object.
The tutorial contains this content:
Here’s the step-by-step process:
Creation of Example Data
The following data is used as a basis for this R programming tutorial:
my_ts <- ts(1:108, # Create time series object start = 2020, frequency = 12) my_ts # Print time series object # Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec # 2020 1 2 3 4 5 6 7 8 9 10 11 12 # 2021 13 14 15 16 17 18 19 20 21 22 23 24 # 2022 25 26 27 28 29 30 31 32 33 34 35 36 # 2023 37 38 39 40 41 42 43 44 45 46 47 48 # 2024 49 50 51 52 53 54 55 56 57 58 59 60 # 2025 61 62 63 64 65 66 67 68 69 70 71 72 # 2026 73 74 75 76 77 78 79 80 81 82 83 84 # 2027 85 86 87 88 89 90 91 92 93 94 95 96 # 2028 97 98 99 100 101 102 103 104 105 106 107 108
The previous output of the RStudio console shows the structure of our exemplifying data – It’s a time series containing monthly data for the years 202-2028.
Let’s check the class of our data:
class(my_ts) # Check class of time series object # [1] "ts"
We are dealing with a ts object.
In the following examples, I’ll explain how to extract only the dates from this ts object.
Example 1: Return Dates from Time Series Using as.yearmon() Function of zoo Package
In this section, I’ll demonstrate how to select only dates from a time series using the zoo package.
First, we need to install and load the zoo package:
install.packages("zoo") # Install zoo package library("zoo") # Load zoo package
Next, we can apply the as.yearmon function of the zoo package in combination with the time function as shown below:
dates_1 <- as.yearmon(time(my_ts)) # Extract dates head(dates_1) # Print head of dates # [1] "Jan 2020" "Feb 2020" "Mar 2020" "Apr 2020" "May 2020" "Jun 2020"
As you can see, we have returned only the months and years of our time series.
Example 2: Return Dates from Time Series Using date_decimal() Function of lubridate Package
Example 2 shows how to use the lubridate package to extract dates from a time series object.
To be able to use the functions of the lubridate package, we first need to install and load lubridate:
install.packages("lubridate") # Install & load lubridate library("lubridate")
Next, we can apply the date_decimal function of lubridate in combination with the as.numeric and time functions:
dates_2 <- date_decimal(as.numeric(time(my_ts))) # Extract dates head(dates_2) # Print head of dates # [1] "2020-01-01 00:00:00 UTC" "2020-01-31 11:59:59 UTC" # [3] "2020-03-02 00:00:00 UTC" "2020-04-01 12:00:00 UTC" # [5] "2020-05-01 23:59:59 UTC" "2020-06-01 12:00:00 UTC"
Once again, we have extracted the dates from our ts object. The output of the previous code has the POSIXct class, in contrast to the yearmon class of the output in Example 1.
Video, Further Resources & Summary
Have a look at the following video on my YouTube channel. In the video, I explain the R programming codes of this article.
Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.
If you accept this notice, your choice will be saved and the page will refresh.
Furthermore, you may have a look at some of the related articles on my website.
- Extract Hours, Minutes & Seconds from Date & Time Object
- Time Difference Between Dates in Weeks, Days, Hours, Minutes & Seconds
- Merge Time Series in R
- Draw Dates to X-Axis of Plot
- Introduction to R
This article has explained how to return only the dates from a time series object in the R programming language. In case you have any additional questions, don’t hesitate to tell me about it in the comments section.
Statistics Globe Newsletter