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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *