Zadanie 1: Obiekty S3

Ćwiczenie 5.1: Trasy rowerowe

W pliku bike.zip zapisane są dane o trasach rowerowych w formacie tcx. Wczytać je można za pomocą funkcji readTCX() z pakietu trackeR. Usunąć zduplikowane względem czasu wpisy można wykorzystując funcję duplicated().

Zaprojektuj i zaimplementuj S3 klasę track

  1. Konstruktor ma dwa argumenty: plik z trasą oraz nazwa trasy

    • W przypadku gdy nazwa trasy nie jest podana, używa się domyślnej nazwy:

      1. jeżeli początek trasy jest w godzinach 5:00–12:00, „Morning ride”,
      2. jeżeli początek trasy jest w godzinach 12:00–18:00, „Afternoon ride”,
      3. Jeżeli początek trasy jest w godzinach 18:00–23:00, „Evening ride”,
      4. Jeżeli początek trasy jest w godzinach 23:00–5:00, „Night ride”.

    Proponowany nagłówek konstruktora:

       track <- function(file, title=getTitle(ride)) {
    
  2. Zaimplementuj standardowe funkcje generyczne: print(), head(), tail().
  3. Zaimplementuj funkcje, które zwracają części ride oraz title. Funkcja title() służy to zmiany etykiet wyrkesów. Zaproponuj dla nazwy trasy inną funkcję. Zaimplementuj odpowiednie funkcje zastępujące.
  4. Zaimplementuj funkcję generyczną velocity(), która oblicza prędkość rowerzysty w każdym momencie. Wynikiem funkcji jest wektor.
  5. Zaimplementuj funkcję plot(), która wyświetla wysokość lub prędkość rowerzysty w zależności od czasu jazdy lub przejechanego dystansu. Wykres przykładowy: