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