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

Dodaj komentarz

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