Jak konwertować ciągi znaków na daty w r (z przykładami)
Często, gdy importujesz dane dotyczące daty i godziny do R, wartości zostaną zaimportowane jako ciągi znaków.
Najłatwiejszym sposobem konwersji ciągów znaków na daty w R jest użycie funkcji as.Date() , która wykorzystuje następującą składnię:
jak.Data(x, format)
Złoto:
- x: Pojedyncza wartość ciągu lub wektor wartości ciągu.
- format: format daty. Wartość domyślna to RRRR-MM-DD.
Możesz użyć polecenia ?strftime w R, aby wyświetlić pełną listę dostępnych argumentów do użycia w formacie daty, ale najczęstsze obejmują:
- %d: Dzień miesiąca jako liczba dziesiętna (01-31)
- %m: miesiąc jako liczba dziesiętna (01-12)
- %y: Rok bez stulecia (na przykład 04)
- %Y: rok ze stuleciem (na przykład 2004)
W tym samouczku przedstawiono kilka przykładów praktycznego wykorzystania funkcji as.Date() .
Przykład 1: Konwertuj pojedynczy ciąg na datę
Poniższy kod pokazuje, jak przekonwertować wartość pojedynczego ciągu na datę:
#create string value x <- c(" 2021-07-24 ") #convert string to date new <- as.Date(x, format=" %Y-%m-%d ") new [1] "2021-07-24" #check class of new variable class(new) [1] “Date”
Przykład 2: Konwertuj wektor ciągów znaków na daty
Poniższy kod pokazuje, jak przekonwertować wektor ciągów znaków na daty:
#create vector of strings x <- c(" 2021-07-24 ", " 2021-07-26 ", " 2021-07-30 ") #convert string to date new <- as.Date(x, format=" %Y-%m-%d ") new [1] "2021-07-24" "2021-07-26" "2021-07-30" #check class of new variable class(new) [1] “Date”
Przykład 3: Konwertuj kolumnę ramki danych na daty
Poniższy kod pokazuje, jak przekonwertować kolumnę łańcuchów danych na daty:
#create data frame df <- data.frame(day = c(" 2021-07-24 ", " 2021-07-26 ", " 2021-07-30 "), sales=c(22, 25, 28), products=c(3, 6, 7)) #view structure of data frame str(df) 'data.frame': 3 obs. of 3 variables: $ day: Factor w/ 3 levels "2021-07-24","2021-07-26",..: 1 2 3 $ sales: num 22 25 28 $products: num 3 6 7 #convert day variable to date df$day <- as.Date(df$day, format=" %Y-%m-%d ") #view structure of new data frame str(df) 'data.frame': 3 obs. of 3 variables: $day: Date, format: "2021-07-24" "2021-07-26" ... $ sales: num 22 25 28 $products: num 3 6 7
Przykład 4: Konwertuj wiele kolumn ramek daty na daty
Poniższy kod pokazuje, jak przekonwertować wiele kolumn łańcuchów danych na daty:
#create data frame df <- data.frame(start = c(" 2021-07-24 ", " 2021-07-26 ", " 2021-07-30 "), end = c(" 2021-07-25 ", " 2021-07-28 ", " 2021-08-02 "), products=c(3, 6, 7)) #view structure of data frame str(df) 'data.frame': 3 obs. of 3 variables: $ start: Factor w/ 3 levels "2021-07-24","2021-07-26",..: 1 2 3 $ end: Factor w/ 3 levels "2021-07-25","2021-07-28",..: 1 2 3 $products: num 3 6 7 #convert start and end variables to date df[,c(' start ', ' end ')] = lapply (df[,c(' start ', ' end ')], function(x) as.Date(x, format=" %Y-%m-%d ")) #view structure of new data frame str(df) 'data.frame': 3 obs. of 3 variables: $start: Date, format: "2021-07-24" "2021-07-26" ... $end: Date, format: "2021-07-25" "2021-07-28" ... $products: num 3 6 7
Więcej informacji na temat funkcji lapply() użytej w tym przykładzie można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki zawierają dodatkowe informacje na temat pracy z datami w R:
Kompletny przewodnik po formatach dat w R
Jak posortować ramkę danych według daty w R
Jak wyodrębnić rok z daty w R