+ - 0:00:00
Notes for current slide
Notes for next slide

Podstawy programowania

Typy danych

© Łukasz Wawrowski

1 / 30

R club rules

  • R jest wrażliwy na wielkość liter: dane i DANE to dwie różne rzeczy

  • separatorem części dziesiętnej liczby jest kropka

  • nie zapisujemy zawartości pamięci przy zamykaniu R

  • w systemie Windows korzystamy z / (slash) lub \\ przy ścieżkach plików

2 / 30

R jako kalkulator

3 / 30

R jako kalkulator

źródło

3 / 30

Komentarze i sekcje

Real programmers don't comment their code. If it was hard to write it should be hard to understand.

4 / 30

Komentarze i sekcje

Real programmers don't comment their code. If it was hard to write it should be hard to understand.

Komentarz w R to znak #

# treść komentarza

Skrót klawiszowy: ctrl + shift + c - używany do tworzenia i usuwania komentarza

4 / 30

Komentarze i sekcje

Real programmers don't comment their code. If it was hard to write it should be hard to understand.

Komentarz w R to znak #

# treść komentarza

Skrót klawiszowy: ctrl + shift + c - używany do tworzenia i usuwania komentarza

Sekcja pozwala na porządkowanie i nawigowanie po skrypcie

# sekcja ------------------------------------------------------------------

Skrót klawiszowy: ctrl + shift + r

4 / 30

Uruchamianie kodu R

  • przycisk Run w oknie skryptu

  • skrót klawiszowy: ctrl + enter

Scenariusz 1

Umieszczamy kursor w linii, którą chcemy wywołać i podejmujemy akcję uruchomienia.

Scenariusz 2

Zaznaczamy fragment kodu i go uruchamiamy.

5 / 30

Funkcja w R

nazwa_funkcji(argument1 = wartosc1, argument2 = wartosc2)
6 / 30

Funkcja w R

nazwa_funkcji(argument1 = wartosc1, argument2 = wartosc2)
  • wartości argumentów można deklarować używając nazw - nieważna kolejność
nazwa_funkcji(argument2 = wartosc2, argument1 = wartosc1)
6 / 30

Funkcja w R

nazwa_funkcji(argument1 = wartosc1, argument2 = wartosc2)
  • wartości argumentów można deklarować używając nazw - nieważna kolejność
nazwa_funkcji(argument2 = wartosc2, argument1 = wartosc1)
  • wartości argumentów można deklarować pozycyjnie - ważna kolejność
nazwa_funkcji(wartosc1, wartosc2, wartosc3)
6 / 30

Funkcje w R

  • Duża liczba pakietów sprawia, że w różnych pakietach może być funkcja o takiej samej nazwie.

  • Wówczas decyduje kolejność, w jakiej pakiety były wczytywane.

  • Do funkcji z danego pakietu można się odwołać w następujący sposób:

nazwa_pakietu::nazwa_funkcji()
7 / 30

Uruchamianie kodu R

8 / 30

Podstawowe operacje arytmetyczne

  • sqrt(x) - pierwiastek
  • exp(x) - zwraca wartość wyrażenia \(e^x\)
  • sign(x) - zwraca znak wyrażenia
  • log(x, base) - logarytm o podanej podstawie
  • abs(x) - wartość bezwzględna
  • factorial(x) - silnia
9 / 30

Ćwiczenie

Oblicz \(5\cdot log_327\)

  • skorzystaj z pomocy - klawisz F1 jak kursor znajduje się na nazwie funkcji

  • zapisz odpowiednią formułę deklarując argumenty pozycyjnie i za pomocą nazw argumentów

10 / 30

Zadania

Oblicz \(log_{10}100 + \sqrt{121}\)

04:00
11 / 30

Wartości nieliczbowe

  • NA - brak danych (not available)

  • NaN - wartość nieokreślona (not a number)

  • Inf - wartość nieskończona (infinity)

  • NULL - zbiór pusty

Braki danych często uniemożliwiają wywołanie niektórych funkcji. Jeśli jest taka możliwość dodaje się argument na.rm = TRUE (skrót od NA remove).

12 / 30

Obiekty

W R wszystko może być obiektem: zbiór danych, wykres, mapa.

Operatorem przypisania w R to <-

nazwa <- obiekt

Można także korzystać ze znaku równości =, ale nie jest to zalecane, ponieważ ten znak pojawia się w wielu innych miejscach, a <- oznacza wyłącznie stworzenie obiektu.

13 / 30

Obiekty

Konwencje nazywania obiektów:

  • alllowercase

  • period.separated

  • underscore_separated

  • lowerCamelCase

  • UpperCamelCase

Nazwa obiektu nie może zaczynać się od liczby

14 / 30

Typy obiektów

  • wartości

  • wektor

  • czynnik/faktor

  • macierz

  • lista

  • ramka danych

15 / 30

Stałe wbudowane

  • pi

  • letters i LETTERS

  • month.abb i month.name

16 / 30

Wektor

Wektor tworzy się z wykorzystaniem funkcji c().

Typy wektorów

  • logiczne

  • liczbowe

  • tekstowe

17 / 30

Wektor

Wektor tworzy się z wykorzystaniem funkcji c().

Typy wektorów

  • logiczne

  • liczbowe

  • tekstowe

Indeksowanie wektora wektor[numer_elementu]

17 / 30

Funkcje związane z wektorami

  • length() - zwraca długość wektora

  • typeof() - zwraca typ obiektu

  • is.numeric(), is.logical() - czy wektor jest danego typu

  • as.numeric(), as.logical() - rzutowanie wektora na dany typ

  • rep() - tworzy wektor poprzez replikację podanego argumentu

  • seq() - tworzy wektor jako sekwencję o podanym początku i końcu

18 / 30

Generowanie wartości

  • losowanie wartości z podanego zakresu - funkcja sample()

  • losowanie wartości z rozkładu:

    • jednostajnego - funkcja runif()

    • normalnego - funkcja rnorm()

19 / 30

Generowanie wartości

  • losowanie wartości z podanego zakresu - funkcja sample()

  • losowanie wartości z rozkładu:

    • jednostajnego - funkcja runif()

    • normalnego - funkcja rnorm()

ziarno generatora: set.seed()

19 / 30

Funkcje agregujące

  • mean() - średnia

  • sum() - suma

  • var() - wariancja

  • sd() - odchylenie standardowe

  • median() - mediana

  • quantile() - kwantyl podanego rzędu

  • min() - minimum

  • max() - maksimum

Aby policzyć skośność lub kurtozę trzeba zainstalować pakiet e1071.

  • skewness() - skośność

  • kurtosis() - kurtoza

20 / 30

Funkcja summary()

  • szybkie podsumowanie dowolnego typu danych

  • wygląd raportu różni się w zależności od typu obiektu

21 / 30

Skale

22 / 30

Skale

23 / 30

Czynnik/faktor

Służy do przechowywania danych jakościowych o mało licznej liczbie kategorii, mierzonych na skali nominalnej i porządkowej.

wyk <- rep(c("podstawowe", "średnie", "wyższe"), c(5,3,2))
wyk
## [1] "podstawowe" "podstawowe" "podstawowe" "podstawowe" "podstawowe"
## [6] "średnie" "średnie" "średnie" "wyższe" "wyższe"
wyk_f <- factor(wyk)
wyk_f
## [1] podstawowe podstawowe podstawowe podstawowe podstawowe średnie
## [7] średnie średnie wyższe wyższe
## Levels: podstawowe średnie wyższe
24 / 30

Macierz

Tworzona za pomocą funkcji matrix(wartosci, nrow = liczba_wierszy, ncol = liczba_kolumn)

25 / 30

Macierz

Tworzona za pomocą funkcji matrix(wartosci, nrow = liczba_wierszy, ncol = liczba_kolumn)

Indeksowanie macierzy macierz[numer_wiersza, numer_kolumny]

25 / 30

Ramka danych

Tworzona za pomocą funkcji data.frame()

df <- data.frame(plec=c("m", "k", "k", "m", "k", "m", "m", "m"),
wzrost=c(173, 170, 163, 178, 169, 180, 175, NA),
wydatki=c(1200, 2340, 1900, 890, 1010, 3099, 1478, 2030),
pali=c(T, F, F, F, T, F, NA, T))
26 / 30

Trzy sposoby indeksowania:

  • po numerze kolumny df[, 2]
  • po nazwie kolumny df[, "Wzrost"]
  • z wykorzystaniem symbolu dolara df$wzrost
27 / 30

Lista

Tworzenie za pomocą funkcji list()

Może zawierać wiele różnych typów danych

28 / 30

Indeksowanie listy

źródło

29 / 30

Pytania?

30 / 30

R club rules

  • R jest wrażliwy na wielkość liter: dane i DANE to dwie różne rzeczy

  • separatorem części dziesiętnej liczby jest kropka

  • nie zapisujemy zawartości pamięci przy zamykaniu R

  • w systemie Windows korzystamy z / (slash) lub \\ przy ścieżkach plików

2 / 30
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow