Jak naprawić w r: błąd w as.date.numeric(x): należy podać „pochodzenie”.


Błąd, który możesz napotkać w R to:

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

Ten błąd zwykle występuje, gdy próbujesz przekonwertować liczbę na datę w języku R, ale nie możesz podać oryginalnej daty.

W tym samouczku dokładnie wyjaśniono, jak naprawić ten błąd.

Jak odtworzyć błąd

Załóżmy, że mamy następującą ramkę danych w R, która pokazuje całkowitą sprzedaż zrealizowaną przez firmę w ciągu kilku dni:

 #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

Możemy użyć funkcji str() do wyświetlenia struktury ramki danych:

 #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

Widzimy, że kolumny daty i sprzedaży są numeryczne.

Załóżmy teraz, że próbujemy przekonwertować kolumnę daty na format daty:

 #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

Otrzymujemy błąd, ponieważ w funkcji as.Date() nie użyliśmy argumentu pochodzenia .

Jak naprawić błąd

Sposobem na naprawienie tego błędu jest po prostu podanie oryginalnej daty, aby R wiedział, jak przekonwertować liczby na daty:

 #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

Podając datę pochodzenia, R przekształcił liczby w daty, dodając liczbę dni do podanego pochodzenia.

Na przykład:

  • Pierwszą wartość daty wynoszącą 27 przekonwertowano na 2020-01-28 , dodając 27 dni do pierwotnej daty 2020-01-01.
  • Wartość drugiej daty wynosząca 140 została przekonwertowana na 20.05.2020 poprzez dodanie 140 dni do pierwotnej daty 01.01.2020.

I tak dalej.

Możemy również użyć funkcji class() , aby potwierdzić, że nowa kolumna rzeczywiście jest datą:

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

[1] “Date”

Nowa kolumna zawiera teraz datę, a nie liczbę.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak rozwiązać inne typowe błędy w języku R:

Jak naprawić w R: Nazwy nie pasują do poprzednich nazw
Jak naprawić w R: długość dłuższego obiektu nie jest wielokrotnością długości krótszego obiektu
Jak naprawić w R: kontrasty można zastosować tylko do czynników o 2 lub więcej poziomach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *