Comment réparer dans R : erreur dans as.Date.numeric(x) : ‘origine’ doit être fourni
Une erreur que vous pouvez rencontrer dans R est :
Error in as.Date.numeric(x) : 'origin' must be supplied
Cette erreur se produit généralement lorsque vous tentez de convertir un nombre en date dans R, mais que vous ne parvenez pas à fournir une date d’origine.
Ce didacticiel explique exactement comment corriger cette erreur.
Comment reproduire l’erreur
Supposons que nous ayons le bloc de données suivant dans R qui montre les ventes totales réalisées au cours de plusieurs jours par une entreprise :
#create data frame
df <- data.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
Nous pouvons utiliser la fonction str() pour afficher la structure du bloc de données :
#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
Nous pouvons voir que les colonnes date et ventes sont toutes deux numériques.
Supposons maintenant que nous essayions de convertir la colonne de date en un format de date :
#attempt to convert date column to date format df$date <- as.Date(df$date) Error in as.Date.numeric(df$date) : 'origin' must be supplied
Nous recevons une erreur car nous n’avons pas utilisé l’argument origin dans la fonction as.Date() .
Comment réparer l’erreur
La façon de corriger cette erreur est de simplement fournir une date d’origine afin que R sache comment convertir les nombres en dates :
#convert date column to date format, using 2020-01-01 as origin date
df$date <- as.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
En fournissant une date d’origine, R a converti les nombres en dates en ajoutant le nombre de jours à l’origine fournie.
Par exemple:
- La première valeur de date de 27 a été convertie en 2020-01-28 en ajoutant 27 jours à la date d’origine du 2020-01-01.
- La deuxième valeur de date de 140 a été convertie en 20/05/2020 en ajoutant 140 jours à la date d’origine du 01/01/2020.
Et ainsi de suite.
Nous pouvons également utiliser la fonction class() pour confirmer que la nouvelle colonne est bien une date :
#display class of date column
class(df$date)
[1] "Date"
La nouvelle colonne est désormais une date au lieu d’un nombre.
Ressources additionnelles
Les didacticiels suivants expliquent comment résoudre d’autres erreurs courantes dans R :
Comment réparer dans R : les noms ne correspondent pas aux noms précédents
Comment réparer dans R : la longueur d’un objet plus longue n’est pas un multiple de la longueur d’un objet plus courte
Comment réparer dans R : les contrastes ne peuvent être appliqués qu’à des facteurs avec 2 niveaux ou plus