Jak naprawić: ciąg nie ma jednoznacznego standardowego formatu
Typowym błędem, jaki możesz napotkać w R jest:
Error in as.POSIXlt.character(x, tz, ...):
character string is not in a standard unambiguous format
Ten błąd zwykle występuje, gdy próbujesz przekonwertować obiekt w języku R na format daty, ale obiekt jest obecnie znakiem lub czynnikiem.
Aby naprawić ten błąd, należy najpierw przekonwertować obiekt na postać cyfrową.
W tym samouczku wyjaśniono, jak w praktyce naprawić ten błąd.
Jak odtworzyć błąd
Załóżmy, że mamy następującą ramkę danych w R:
#create data frame
df <- data. frame (date=c('1459397140', '1464397220', '1513467142'),
sales=c(140, 199, 243))
#view data frame
df
dirty date
1 1459397140 140
2 1464397220 199
3 1513467142 243
Załóżmy teraz, że próbujemy przekonwertować wartości kolumny daty na format daty:
#attempt to convert values in date column to date
df$date <- as. POSIXct (df$date, origin=' 1970-01-01 ')
Error in as.POSIXlt.character(x, tz, ...):
character string is not in a standard unambiguous format
Otrzymujemy błąd, ponieważ wartości kolumn daty są obecnie w formacie znakowym, z czym funkcja as.POSIXct() nie jest w stanie obsłużyć.
Jak naprawić błąd
Aby naprawić ten błąd, musimy użyć funkcji as.numeric() , aby najpierw przekonwertować wartości kolumn daty na format liczbowy, czyli format, który obsługuje as.POSIXct :
#convert values in date column to date
df$date <- as. POSIXct (as. numeric (as. character (df$date)), origin=' 1970-01-01 ')
#view updated data frame
df
dirty date
1 2016-03-31 04:05:40 140
2 2016-05-28 01:00:20 199
3 2017-12-16 23:32:22 243
Tym razem nie otrzymujemy błędu i udaje nam się pomyślnie przekonwertować wartości kolumn daty na format daty, ponieważ najpierw przekonwertowaliśmy wartości na format liczbowy.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w R:
Jak naprawić: Nie można zmusić obiektu (listy) do wpisania „podwójnego”
Jak naprawić w R: Nieprawidłowa formuła szablonu w ExtractVars
Jak naprawić w R: wymiana ma zerową długość