How to Extract Month from Date in R (With Examples)

[This article was first published on Steve's Data Tips and Tricks, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.


Greetings fellow R enthusiasts! Today, we’re diving into a fundamental task: extracting the month from a date in R. Whether you’re new to R or a seasoned pro, understanding how to manipulate dates is essential. We’ll explore two popular methods: using base R and the powerful lubridate package. So, let’s roll up our sleeves and get started!

Using Base R

First up, let’s tackle the task with base R. We’ll use the format() function to extract the month from a date.

Example 1: Extracting Month from a Vector of Dates

# Create a vector of dates
dates_vector <- as.Date(c("2023-01-15", "2023-05-20", "2023-09-10"))

# Extract the month
months <- format(dates_vector, "%m")

# Print the result
[1] "01" "05" "09"

In this example, we have a vector of dates. We use the format() function to specify that we want to extract the month (%m), and voila! We get the months corresponding to each date.

Example 2: Extracting Month from a Column in a Data Frame

# Create a sample data frame
df <- data.frame(date = as.Date(c("2023-01-15", "2023-05-20", "2023-09-10")))

# Extract the month from the 'date' column
df$month <- format(df$date, "%m")

# Print the data frame with the new 'month' column
        date month
1 2023-01-15    01
2 2023-05-20    05
3 2023-09-10    09

Here, we’re working with a data frame. We use the $ operator to access the ‘date’ column and apply the format() function to extract the month. The result is a data frame with an additional ‘month’ column containing the extracted months.

Example 3: Extracting Month from a Single Date

# Single date
single_date <- as.Date("2023-07-04")

# Extract the month
month <- format(single_date, "%m")

# Print the result
[1] "07"

Even if you have just one date, you can still use the format() function to extract the month. Simple and effective!

Using lubridate Package

Now, let’s switch gears and explore how to achieve the same task using the lubridate package, known for its user-friendly date-time functions.

Example 4: Extracting Month Using lubridate’s month() Function

# Load the lubridate package

# Create a sample date
date <- ymd("2023-11-30")

# Extract the month using lubridate's month() function
month <- month(date)

# Print the result
[1] 11

With lubridate, we simplify the process using the month() function directly on the date object. It’s clean, concise, and effortlessly extracts the month.

Encouragement and Conclusion

Now that you’ve seen how to extract the month from a date using both base R and the lubridate package, I encourage you to experiment further! Try different date formats, explore other functions within these methods, and integrate them into your data analysis workflows.

Understanding date manipulation in R opens up a world of possibilities for analyzing temporal data. Whether you’re analyzing sales trends, tracking patient appointments, or exploring climate data, mastering date manipulation is a valuable skill.

Keep coding, keep exploring, and stay curious! Happy extracting!

Until next time, Your fellow R enthusiast

To leave a comment for the author, please follow the link and comment on their blog: Steve's Data Tips and Tricks. offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)