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