PDF pagePrint page

Skalary

Podstawowymi typami danych są skalary umożliwiające reprezentację pojedynczych liczb, łańcuchów znaków lub wartości logicznych. Typ każdej zmiennej bądź wyrażenia możemy sprawdzić funkcją class(). Liczbę na której możemy wykonywać operacje arytmetyczne reprezentuje typ numeric.

Do przechowywania łańcuchów i pojedynczych znaków przeznaczony jest typ character:

Ostatnim z typów skalarnych jest typ logiczny logical. Służy on do przechowywania wartości prawdy (TRUET) oraz fałszu (FALSE, F):

Znając typ logiczny możemy spojrzeć na operatory porównania dla liczb:

Wektor

Do przechowywania wielu skalarów tego samego typu służą wektory. Wektor to jednowymiarowa struktura zawierająca pewną liczbę elementów. Skalary są specjalną wersją wektora o rozmiarze 1. Do konstrukcji wektora wykorzystujemy funkcję c() przyjmującą elementy, które chcemy umieścić w wektorze. Próba stworzenia wektora o elementach różnych typów skutkuje konwersją do wspólnego typu:

Sekwencje umożliwiają tworzenie wektorów liczbowych z podanymi zakresami wartości i krokiem o wartości 1. Użycie funkcji seq() umożliwia tworzenie sekwencji o arbitralnym kroku.

Często wykonywaną operacją na wektorach jest indeksowanie, czyli wybór konkretnych elementów z wektora:

Użycie ujemnych indeksów sprawia, że wartości pod podanymi indeksami nie są zwracane. Mieszanie ujemnych i dodatnich indeksów jest niedozwolone:

Istnieje szereg funkcji przeznaczonych specjalnie dla wektorów, np. funkcja length() zwracająca liczbę elementów w wektorze. Inne funkcje są z kolei zwektoryzowane. Oznacza to, że funkcje umiejętnie dobierają swoje działanie w zależności czy podano im zestaw argumentów, czy też pojedynczy wektor z argumentami.

Warto zauważyć, że wektory są homogeniczne w sensie typu. Dlatego też typem wektora jest typ elementów, które wektor ten przechowuje.