Zacznij terazZacznij za darmo

Tworzenie i formatowanie dat

Aby w R utworzyć obiekt Date z prostego ciągu znaków, możesz użyć funkcji as.Date(). Ciąg znaków musi być zgodny z formatem, który definiuje się za pomocą określonych symboli (poniższe przykłady odpowiadają dacie 13 stycznia 1982):

  • %Y: rok czterocyfrowy (1982)
  • %y: rok dwucyfrowy (82)
  • %m: miesiąc dwucyfrowy (01)
  • %d: dzień miesiąca dwucyfrowy (13)
  • %A: dzień tygodnia (Wednesday)
  • %a: skrócony dzień tygodnia (Wed)
  • %B: miesiąc (January)
  • %b: skrócony miesiąc (Jan)

Poniższe polecenia R tworzą ten sam obiekt Date dla 13. dnia stycznia 1982 roku:

as.Date("1982-01-13")
as.Date("Jan-13-82", format = "%b-%d-%y")
as.Date("13 January, 1982", format = "%d %B, %Y")

Zwróć uwagę, że pierwszy przykład nie wymaga argumentu format – R domyślnie dopasowuje ciąg znaków do formatów "%Y-%m-%d" lub "%Y/%m/%d".

Poza tworzeniem dat możesz też konwertować daty na ciągi znaków w innej notacji. Służy do tego funkcja format(). Wypróbuj poniższy kod:

today <- Sys.Date()
format(Sys.Date(), format = "%d %B, %Y")
format(Sys.Date(), format = "Today is a %A!")

To ćwiczenie jest częścią kursu

Intermediate R

Zobacz kurs

Instrukcje do ćwiczenia

  • Przygotowano dla ciebie trzy ciągi znaków reprezentujące daty. Przekonwertuj je na daty za pomocą funkcji as.Date() i przypisz odpowiednio do zmiennych date1, date2 i date3. Kod dla date1 jest już gotowy.
  • Wyodrębnij przydatne informacje z dat w postaci ciągów znaków, korzystając z funkcji format(). Z pierwszej daty pobierz dzień tygodnia. Z drugiej daty pobierz dzień miesiąca. Z trzeciej daty pobierz skrócony miesiąc i rok czterocyfrowy, oddzielone spacją.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Definition of character strings representing dates
str1 <- "May 23, '96"
str2 <- "2012-03-15"
str3 <- "30/January/2006"

# Convert the strings to dates: date1, date2, date3
date1 <- as.Date(str1, format = "%b %d, '%y")



# Convert dates to formatted strings
format(date1, "%A")
Edytuj i uruchom kod