6 C
London
Tuesday, March 11, 2025
HomeRFix Common Errors in RHow to Fix in R: Error in as.Date.numeric(x) : ‘origin’ must be...

How to Fix in R: Error in as.Date.numeric(x) : ‘origin’ must be supplied

Related stories

Learn About Opening an Automobile Repair Shop in India

Starting a car repair shop is quite a good...

Unlocking the Power: Embracing the Benefits of Tax-Free Investing

  Unlocking the Power: Embracing the Benefits of Tax-Free Investing For...

Income Splitting in Canada for 2023

  Income Splitting in Canada for 2023 The federal government’s expanded...

Can I Deduct Home Office Expenses on my Tax Return 2023?

Can I Deduct Home Office Expenses on my Tax...

Canadian Tax – Personal Tax Deadline 2022

  Canadian Tax – Personal Tax Deadline 2022 Resources and Tools...

One error you may encounter in R is:

Error in as.Date.numeric(x) : 'origin' must be supplied 

This error usually occurs when you attempt to convert a number to a date in R, but fail to provide an origin date.

This tutorial shares exactly how to fix this error.

How to Reproduce the Error

Suppose we have the following data frame in R that shows the total sales made during various days by some company:

#create data frame
df frame(date=c(27, 140, 180, 200),
                 sales=c(12, 22, 30, 31))

#view data frame
df

  date sales
1   27    12
2  140    22
3  180    30
4  200    31

We can use the str() function to view the structure of the data frame:

#view structure of data frame
str(df)

'data.frame':	4 obs. of  2 variables:
 $ date : num  27 140 180 200
 $ sales: num  12 22 30 31

We can see that the date and sales columns are both numeric.

Now suppose we attempt to convert the date column to a date format:

#attempt to convert date column to date format
df$date Date(df$date)

Error in as.Date.numeric(df$date) : 'origin' must be supplied

We receive an error because we we did not use the origin argument within the as.Date() function.

How to Fix the Error

The way to fix this error is to simply provide an origin date so that R knows how to convert the numbers to dates:

#convert date column to date format, using 2020-01-01 as origin date
df$date Date(df$date, origin="2020-01-01")

#view updated data frame
df

        date sales
1 2020-01-28    12
2 2020-05-20    22
3 2020-06-29    30
4 2020-07-19    31

By supplying an origin date, R converted the numbers to dates by adding the number of days to the origin supplied.

For example:

  • The first date value of 27 was converted to 2020-01-28 by adding 27 days to the origin date of 2020-01-01.
  • The second date value of 140 was converted to 2020-05-20 by adding 140 days to the origin date of 2020-01-01.

And so on.

We can also use the class() function to confirm that the new column is indeed a date:

#display class of date column
class(df$date)

[1] "Date"

The new column is now a date instead of a number.

Additional Resources

The following tutorials explain how to troubleshoot other common errors in R:

How to Fix in R: names do not match previous names
How to Fix in R: longer object length is not a multiple of shorter object length
How to Fix in R: contrasts can be applied only to factors with 2 or more levels

Subscribe

- Never miss a story with notifications

- Gain full access to our premium content

- Browse free from up to 5 devices at once

Latest stories