Get Started

Subtraction of dates

Just like with numerics, arithmetic can be done on dates. In particular, you can find the difference between two dates, in days, by using subtraction:

today <- as.Date("2017-01-02")
tomorrow <- as.Date("2017-01-03")
one_year_away <- as.Date("2018-01-02")

tomorrow - today
Time difference of 1 days

one_year_away - today
Time difference of 365 days

Equivalently, you could use the difftime() function to find the time interval instead.

difftime(tomorrow, today)
Time difference of 1 days

# With some extra options!
difftime(tomorrow, today, units = "secs")
Time difference of 86400 secs

This is a part of the course

“Intermediate R for Finance”

View Course

Exercise instructions

  • A vector of dates has been created for you.
  • You can use subtraction to confirm that January 1, 1970 is the first date that R counts from. First, create a variable called origin containing "1970-01-01" as a date.
  • Now, use as.numeric() on dates to see how many days from January 1, 1970 it has been.
  • Finally, subtract origin from dates to confirm the results! (Notice how recycling is used here!)

Hands-on interactive exercise

Have a go at this exercise by completing this sample code.

# Dates
dates <- as.Date(c("2017-01-01", "2017-01-02", "2017-01-03"))

# Create the origin
origin <- ___

# Use as.numeric() on dates
___

# Find the difference between dates and origin
___

This exercise is part of the course

Intermediate R for Finance

BeginnerSkill Level
4.7+
10 reviews

Learn about how dates work in R, and explore the world of if statements, loops, and functions using financial examples.

Chapter 1: Dates

Welcome! Before we go deeper into the world of R, it will be nice to have an understanding of how dates and times are created. This chapter will teach you enough to begin working with dates, but only scratches the surface of what you can do with them.

Exercise 1: An introduction to dates in RExercise 2: What day is it?Exercise 3: From char to dateExercise 4: Many datesExercise 5: Date formats and extractor functionsExercise 6: Date formats (1)Exercise 7: Date formats (2)Exercise 8: Subtraction of dates
Exercise 9: months() and weekdays() and quarters(), oh my!

Chapter 2: If Statements and Operators

Imagine you own stock in a company. If the stock goes above a certain price, you might want to sell. If the stock drops below a certain price, you might want to buy it while it's cheap! This kind of thinking can be implemented using operators and if statements. In this chapter, you will learn all about them, and create a program that tells you to buy or sell a stock.

Exercise 1: Relational operatorsExercise 2: Relational practiceExercise 3: Vectorized operationsExercise 4: Logical operatorsExercise 5: And / OrExercise 6: Not!Exercise 7: Logicals and subset()Exercise 8: All together now!Exercise 9: If statementsExercise 10: If thisExercise 11: If this, Else thatExercise 12: If this, Else If that, Else that other thingExercise 13: Can you If inside an If?Exercise 14: ifelse()

Chapter 3: Loops

Chapter 4: Functions

If data structures like data frames and vectors are how you hold your data, functions are how you tell R what to do with your data. In this chapter, you will learn about using built-in functions, creating your own unique functions, and you will finish off with a brief introduction to packages.

Exercise 1: What are functions?Exercise 2: Function help and documentationExercise 3: Optional argumentsExercise 4: Functions in functionsExercise 5: Writing functionsExercise 6: Your first functionExercise 7: Multiple arguments (1)Exercise 8: Multiple arguments (2)Exercise 9: Function scope (1)Exercise 10: Function scope (2)Exercise 11: PackagesExercise 12: tidyquant package

Chapter 5: Apply

A popular alternative to loops in R are the apply functions. These are often more readable than loops, and are incredibly useful for scaling the data science workflow to perform a complicated calculation on any number of observations. Learn about them here!

Exercise 1: Why use apply?Exercise 2: lapply() on a listExercise 3: lapply() on a data frameExercise 4: FUN argumentsExercise 5: sapply() - simplify it!Exercise 6: sapply() vs. lapply()Exercise 7: Failing to simplifyExercise 8: vapply() - specify your output!Exercise 9: vapply() vs. sapply()Exercise 10: More vapply()Exercise 11: Anonymous functionsExercise 12: Congratulations

What is DataCamp?

Learn the data skills you need online at your own pace—from non-coding essentials to data science and machine learning.

Start Learning for Free