This error occurs when you try to convert a number to a date without providing an origin date. You can solve this error by providing a date as an origin argument to the
as.Date function. For example,
as.Date(34291, origin = "1900-01-01")
This tutorial will go through the error in detail and how to solve it with code examples.
Let’s look at an example of reproducing the error.
# Data frame containing water level of man made pond in cms after n days from creating df <- data.frame(days_after=c(14, 80, 40, 350), water_level=c(30, 20, 89, 50)) # Print structure of the data frame str(df)
str() function returns the structure of the data frame and informs us of the data type in each column:
'data.frame': 4 obs. of 2 variables: $ days_after : num 14 80 40 350 $ water_level: num 30 20 89 50
water_level columns are numeric. We can use the as.Date method to convert the days_after column to date format.
df$days_after <- as.Date(df$days_after)
Let’s run the code to see what happens:
Error in as.Date.numeric(df$days_after) : 'origin' must be supplied
The error occurred because we did not specify an origin argument for the
If you pass a numeric argument for
x to the
as.Date method, R interprets
x as the number of days since a specified origin.
We can solve the error by specifying an origin. The origin must be a
Date object or something that can be coerced by
as.Date(origin, _) to a
Let’s look at the revised code:
df$days_after <- as.Date(df$days_after, origin="2007-07-04") df
Let’s run the code to get the result:
days_after water_level 1 2007-07-18 30 2 2007-09-22 20 3 2007-08-13 89 4 2008-06-18 50  "Date"
When we provide an origin date, the R interpreter converts the numeric values to dates by adding the number of days in the
days_after column to the origin. For example,
- The first row of the
days_aftercolumn is 14 and the date
2007-07-18is 14 days after
- The second row of the
days_aftercolumn is 80 and the date
2007-09-22is 80 days after
We can confirm that the
days_after column has the class
Date using the
Congratulations on reading to the end of this tutorial!
For further reading on R-related errors, go to the articles:
- How to solve R Error in xj[i] : invalid subscript type ‘list’
- How to Solve R Error: Arguments imply differing number of rows
- How to Solve R Error: contrasts can be applied only to factors with 2 or more levels
Go to the online courses page on R to learn more about coding in R for data science and machine learning.
Have fun and happy researching!
Suf is a research scientist at Moogsoft, specializing in Natural Language Processing and Complex Networks. Previously he was a Postdoctoral Research Fellow in Data Science working on adaptations of cutting-edge physics analysis techniques to data-intensive problems in industry. In another life, he was an experimental particle physicist working on the ATLAS Experiment of the Large Hadron Collider. His passion is to share his experience as an academic moving into industry while continuing to pursue research. Find out more about the creator of the Research Scientist Pod here and sign up to the mailing list here!