Come risolvere il problema in r: è necessario fornire l'errore in as.date.numeric(x): è necessario fornire 'origin'


Un errore che potresti riscontrare in R è:

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

Questo errore si verifica in genere quando si tenta di convertire un numero in una data in R, ma non si riesce a fornire una data originale.

Questo tutorial spiega esattamente come correggere questo errore.

Come riprodurre l’errore

Supponiamo di avere il seguente frame di dati in R che mostra le vendite totali effettuate in diversi giorni da un’azienda:

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

#view data frame
df

  dirty dates
1 27 12
2 140 22
3 180 30
4,200 31

Possiamo usare la funzione str() per visualizzare la struttura del 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

Possiamo vedere che le colonne della data e delle vendite sono entrambe numeriche.

Supponiamo ora di provare a convertire la colonna della data in un formato data:

 #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

Stiamo ricevendo un errore perché non abbiamo utilizzato l’argomento origin nella funzione as.Date() .

Come correggere l’errore

Il modo per correggere questo errore è semplicemente fornire una data originale in modo che R sappia come convertire i numeri in date:

 #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

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

Fornendo una data di origine, R ha convertito i numeri in date aggiungendo il numero di giorni all’origine fornita.

Per esempio:

  • Il primo valore della data pari a 27 è stato convertito in 2020-01-28 aggiungendo 27 giorni alla data originale di 2020-01-01.
  • Il secondo valore della data pari a 140 è stato convertito in 20/05/2020 aggiungendo 140 giorni alla data originale del 01/01/2020.

E così via.

Possiamo anche usare la funzione class() per confermare che la nuova colonna è effettivamente una data:

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

[1] “Date”

La nuova colonna ora è una data anziché un numero.

Risorse addizionali

I seguenti tutorial spiegano come risolvere altri errori comuni in R:

Come risolvere il problema in R: i nomi non corrispondono ai nomi precedenti
Come risolvere in R: la lunghezza di un oggetto più lungo non è un multiplo della lunghezza di un oggetto più corto
Come risolvere in R: i contrasti possono essere applicati solo a fattori con 2 o più livelli

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *