Samouczek R
📗 Wprowadzenie
W niniejszym pliku przedstawiono zawartość całego opracowania - razem 14 rozdziałów.
Bezpośrednio po wskazanych komendach podany jest wynik otrzymywany w programie R.
Po lewej stronie zamieszczono menu pozwalające wygodnie przemieszczać się po wyróżnionych tematach.
We wszystkich obszarach z kodem R umieszczono przyciski pozwalające na wygodne kopiowanie kodu i następnie wklejanie go do programu R.
▶️ Tematyka
- Podstawy pracy z programem R
- Struktury danych
- Instrukcje warunkowe oraz pętle
- Funkcje i operacje matematyczne oraz statystyczne
- Import i eksport danych. Wykresy. Zmienne losowe
- Wizualizacja z pakietem lattice
- Model liniowy
- Weryfikacja hipotez i pakiet dplyr
- Pakiet ggplot2. Podstawy konstrukcji wykresów
- Pakiet patchwork
- Pakiety ggplot2 i gapminder. Podstawy animacji
- Animacje dla rzeczywistych danych z BDL
- Interaktywny dashboard z pakietem shiny
- Uczenie maszynowe z pakietem mlr3
📗 01. Podstawy pracy z programem R
📘 Początek pracy z programem R
# To jest komentarz. Komentarze rozpoczynamy znakiem #
## tak oznaczane będą wyniki wykonanych poleceń
Wypisanie liczb od 1 do 10 z odstępem co 1
## [1] 1 2 3 4 5 6 7 8 9 10
❕ Załadowanie pakietu ggplot2
## Warning: pakiet 'ggplot2' został zbudowany w wersji R 4.2.3
R jako kalukulator
## [1] 4
## [1] 18
## [1] 42
## [1] 6
## [1] 32
## [1] 2
## [1] 2.484907
## [1] 4
## [1] 3.141593
## [1] 1.224606e-16
Zaokrglenia liczb
## [1] 2
## [1] 3
## [1] 2.43
Przypisywanie wartości do zmiennych
## [1] 7
## [1] 7
## [1] 10
## [1] 70
## [1] 17
## [1] 7
## [1] 10
## [1] 17
📘 Typy obiektów
Typ liczbowy
## [1] 2.4535
## [1] 2.45
## [1] 2.454
Typ znakowy
## [1] "Patrycja"
## [1] "Dawid"
## [1] Dawid
## [1] "to jest kot"
## [1] "Patrycja i Dawid"
## [1] "pies"
📘 Operatory logiczne
📘 Klasy obiektów
## [1] "character"
## [1] "numeric"
## [1] FALSE
## [1] "l1" "l2" "l3" "n1" "t1" "t2" "t3"
## l1 : logi TRUE
## l2 : logi TRUE
## l3 : logi FALSE
## n1 : num 2.45
## t1 : chr "Patrycja"
## t2 : chr "Dawid"
## t3 : chr "to jest pies"
## [1] FALSE
## [1] FALSE
## [1] TRUE
## [1] FALSE
📘 Wektory
## [1] 10 9 8 7 6 5
## [1] TRUE TRUE FALSE FALSE
## [1] "Dawid" "Wojtek" "Robert" "Kuba" "Klaudia" "Luiza"
## [1] 1 2 3 4 5 6 7 8 9 10
## [1] 10 9 8 7 6 5 4 3 2 1
## [1] 1.2 2.2 3.2 4.2 5.2 6.2 7.2 8.2 9.2 10.2 11.2 12.2 13.2 14.2 15.2
## [16] 16.2 17.2 18.2 19.2 20.2
## [1] 1.2 2.2 3.2 4.2 5.2 6.2 7.2 8.2 9.2 10.2 11.2 12.2 13.2 14.2 15.2
## [16] 16.2 17.2 18.2 19.2 20.2
## [1] 1.2 2.2 3.2 4.2 5.2 6.2 7.2 8.2 9.2 10.2 11.2 12.2 13.2 14.2 15.2
## [16] 16.2 17.2 18.2 19.2
## [1] 16 19 22 25 28
## [1] 16 19 22 25 28
## [1] 16 19 22 25 28
## [1] "l1" "l2" "l3" "n1" "t1" "t2" "t3" "w1" "w2" "w3" "w4" "w5"
## [1] 10 9 8 7 6 5
## [1] "Dawid" "Wojtek" "Robert" "Kuba" "Klaudia" "Luiza"
## [1] 33 32 9 9 9 6
## [1] 230 207 8 14 18 5
## [1] 7.000000 7.333333 7.666667 8.000000 8.333333 8.666667 9.000000
## [8] 9.333333 9.666667 10.000000
## [1] 10
## [1] FALSE
## [1] TRUE
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [1] FALSE
📗 02. Struktury danych
📘 Wektory
Funkcja rep()
## [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [38] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [75] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1] 1 2 3 1 2 3 1 2 3
## [1] "pies" "pies"
## [1] 1 1 1 2 2 2 3 3 3
## [1] 9 8 7 9 8 7
## [1] 2 2 2 1 1 1
## [1] 9 8 7 9 8 7 2 2 2 1 1 1
## [1] 9 8 7 9 8 7 2 2 2 1 1 1
Sampling - pobieranie próbek
## [1] 7 2 1 7 6 6 1 2 6 6
# sample(1:7,10)
# Wykonując kod pojawi się błąd, ponieważ zbiór, z którego pobieramy liczby jest za mały.
# Wektor s2 będzie pobierał 5 liczb z wektora liczb pierwszych z przedziału od 1 do 20.
s2<-sample(c(2,3,5,7,11,13,17,19),5)
s2
## [1] 7 5 3 19 13
## [1] 4 4 3 3 1 3 4 1 3 1 2 4 3 4 4
Maskowanie dla wektorów
## [1] 19 23 27 15 43
## [1] TRUE FALSE FALSE TRUE TRUE
## [1] 19 15 43
Indeksy dla wektorów
## [1] 23
## [1] 23 27 15 43
## [1] 19 43
## [1] 43
## [1] 19 43
## [1] 19 27 15 43
## [1] 23 15 43
## [1] 15 43
## [1] 0 0 0 -1 0
## [1] 19 23 27 15 43
## [1] FALSE TRUE TRUE FALSE TRUE
## [1] 23 27 43
📘 Typ czynnikowy (factor)
## [1] "character"
## [1] pop rock rap rap
## Levels: pop rap rock
## [1] <NA> rock rap rap
## Levels: rap rock
## [1] 1 gatunek 3 gatunek 2 gatunek 2 gatunek
## Levels: 1 gatunek 2 gatunek 3 gatunek
## [1] 1 2 1 3 1 2
## Levels: 1 2 3 4
## [1] nie podoba mi się średnie nie podoba mi się okej
## [5] nie podoba mi się średnie
## Levels: nie podoba mi się średnie okej super
## nie podoba mi się średnie okej super
## 3 2 1 0
## [1] nie podoba mi się średnie nie podoba mi się okej
## [5] nie podoba mi się super
## Levels: nie podoba mi się średnie okej super
## nie podoba mi się średnie okej super
## 3 1 1 1
## [1] 1 2 1 3 1 4
📘 Macierze (matrix)
## [1] 1 2 3 4 5
## [1] 5 4 3 2 1
## [1] 1 2 34 5 0
m1=cbind(a,c,b)
m2=rbind(c,b,a)
m3=cbind(m1,c)
# cbind(m1,m2)
# Niewykonalne ze względu na różne wymiary obiektów.
?matrix
m4=matrix(0,ncol=4,nrow=3)
m4
## [,1] [,2] [,3] [,4]
## [1,] 0 0 0 0
## [2,] 0 0 0 0
## [3,] 0 0 0 0
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
## [,1] [,2] [,3] [,4]
## [1,] 1 0 0 0
## [2,] 0 1 0 0
## [3,] 0 0 1 0
## [4,] 0 0 0 1
## [,1] [,2] [,3] [,4]
## [1,] 4 0 0 0
## [2,] 0 3 0 0
## [3,] 0 0 2 0
## [4,] 0 0 0 3
Indeksy dla macierzy i ramek danych
## [1] 6
## [1] 4 5 6
## [1] 1 4 7 10
## [,1] [,2]
## [1,] 1 10
## [2,] 2 11
## [,1] [,2] [,3]
## [1,] 1 4 10
## [2,] 2 5 11
## [3,] 3 6 12
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 0
## [3,] 3 6 9 12
## [,1] [,2] [,3] [,4]
## [1,] FALSE FALSE TRUE TRUE
## [2,] FALSE FALSE TRUE FALSE
## [3,] FALSE FALSE TRUE TRUE
## [1] 7 8 9 10 12
## [,1] [,2] [,3] [,4]
## [1,] 1 4 -1 -1
## [2,] 2 5 -1 0
## [3,] 3 6 -1 -1
Obliczenia na macierzach
## [1] 12
## [1] 3
## [1] 4
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
## [,1] [,2]
## [1,] 4 2
## [2,] 3 1
## [,1] [,2]
## [1,] 4 6
## [2,] 6 4
## [,1] [,2]
## [1,] 13 5
## [2,] 20 8
## [1] -2
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
## [,1] [,2]
## [1,] -2 1.5
## [2,] 1 -0.5
## [1] 10
## [1] 2.5
## [1] 4 6
## [1] 3 7
## [1] 2 3
📘 Tablice (array)
## , , 1
##
## [,1] [,2]
## [1,] 61 19
## [2,] 38 96
## [3,] 10 34
##
## , , 2
##
## [,1] [,2]
## [1,] 82 33
## [2,] 99 23
## [3,] 48 33
##
## , , 3
##
## [,1] [,2]
## [1,] 56 83
## [2,] 62 89
## [3,] 6 30
## [,1] [,2]
## [1,] 68 68
## [2,] 38 42
## [3,] 86 25
## [1] 83
## [,1] [,2]
## [1,] 56 83
## [2,] 62 89
## [3,] 6 30
## [,1] [,2]
## [1,] 82 33
## [2,] 99 23
## [1] 3 2 3
## [1] 2
## [1] 2
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 61 19 82 33 56 83
## [2,] 38 96 99 23 62 89
## [3,] 10 34 48 33 6 30
## , , 1
##
## [,1] [,2]
## [1,] 61 53
## [2,] 81 82
## [3,] 59 42
##
## , , 2
##
## [,1] [,2]
## [1,] 30 83
## [2,] 21 34
## [3,] 15 90
##
## , , 3
##
## [,1] [,2]
## [1,] 92 98
## [2,] 64 53
## [3,] 57 37
## [1] 26.31064 24.67342
apply(t,3,sd)[2] #3 - oznacza warstwy, co oznacza, że obliczane są odchylenia standardowe dla warstw. [2] pozwala na wybranie 2 elementu z uzyskanego wektora, czyli odchylenia standardowego dla elementów z 2-giej warstwy.
## [1] 32.52537
📘 Ramki danych (data.frame)
# Ramka posiada dane o pracownikach: imię, wiek, fakt czy ktoś złożył wypowiedzenie, staż pracy (w latach).
ramka=data.frame(c("Ola","Kamil","Maciek","Asia"),c(21,32,38,40),c(T,F,F,F),seq(2,12,3))
ramka
## c..Ola....Kamil....Maciek....Asia.. c.21..32..38..40. c.T..F..F..F.
## 1 Ola 21 TRUE
## 2 Kamil 32 FALSE
## 3 Maciek 38 FALSE
## 4 Asia 40 FALSE
## seq.2..12..3.
## 1 2
## 2 5
## 3 8
## 4 11
## [1] "c..Ola....Kamil....Maciek....Asia.." "c.21..32..38..40."
## [3] "c.T..F..F..F." "seq.2..12..3."
## [1] "c..Ola....Kamil....Maciek....Asia.." "c.21..32..38..40."
## [3] "c.T..F..F..F." "seq.2..12..3."
## imię wiek wypowiedzenie staż pracy
## 1 Ola 21 TRUE 2
## 2 Kamil 32 FALSE 5
## 3 Maciek 38 FALSE 8
## 4 Asia 40 FALSE 11
## [1] "1" "2" "3" "4"
## [1] "Obserwacja"
## imię wiek wypowiedzenie staż pracy
## Obserwacja 1 Ola 21 TRUE 2
## Obserwacja 2 Kamil 32 FALSE 5
## Obserwacja 3 Maciek 38 FALSE 8
## Obserwacja 4 Asia 40 FALSE 11
## imię wiek wypowiedzenie staż pracy
## obserwacja 1 Ola 21 TRUE 2
## obserwacja 2 Kamil 32 FALSE 5
## obserwacja 3 Maciek 38 FALSE 8
## obserwacja 4 Asia 40 FALSE 11
## imię wiek wypowiedzenie staż pracy
## obs1 Ola 21 TRUE 2
## obs2 Kamil 32 FALSE 5
## obs3 Maciek 38 FALSE 8
## obs4 Asia 40 FALSE 11
## [[1]]
## [1] "obs1" "obs2" "obs3" "obs4"
##
## [[2]]
## [1] "imię" "wiek" "wypowiedzenie" "staż pracy"
## wypowiedzenie
## obs1 TRUE
## obs2 FALSE
## obs3 FALSE
## obs4 FALSE
## [1] TRUE FALSE FALSE FALSE
## [1] 6.5
mean(ramka[4]) #Błąd, ponieważ z takiego typu nie można policzyć średniej - natomiast z wektorów można .
## Warning in mean.default(ramka[4]): argument nie jest wartością liczbową ani
## logiczną: zwracanie wartości NA
## [1] NA
## [1] FALSE
## wiek
## obs1 21
## obs2 32
## obs3 38
## obs4 40
## [1] 21 32 38 40
## [1] 21 32 38 40
## [1] 32.75
## [1] 5
## imię wiek wypowiedzenie staż pracy
## obs1 Ola 21 TRUE 2
## obs2 Kamil 32 FALSE 5
## obs3 Maciek 38 FALSE 8
## obs4 Asia 40 FALSE 11
## [1] "staż pracy"
## imię wiek wypowiedzenie staż
## obs1 Ola 21 TRUE 2
## obs2 Kamil 32 FALSE 5
## obs3 Maciek 38 FALSE 8
## obs4 Asia 40 FALSE 11
## imię wiek wypowiedzenie staż
## obs2 Kamil 32 FALSE 5
## [1] TRUE FALSE FALSE FALSE
## [1] TRUE FALSE FALSE FALSE
## imię wiek wypowiedzenie staż
## obs1 Ola 21 TRUE 2
## imię wiek wypowiedzenie staż
## obs1 Ola 21 TRUE 2
## imię wiek wypowiedzenie staż
## "character" "numeric" "logical" "numeric"
## $imię
## [1] "character"
##
## $wiek
## [1] "numeric"
##
## $wypowiedzenie
## [1] "logical"
##
## $staż
## [1] "numeric"
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
## [1] 4 4
## [1] setosa setosa setosa setosa setosa setosa
## [7] setosa setosa setosa setosa setosa setosa
## [13] setosa setosa setosa setosa setosa setosa
## [19] setosa setosa setosa setosa setosa setosa
## [25] setosa setosa setosa setosa setosa setosa
## [31] setosa setosa setosa setosa setosa setosa
## [37] setosa setosa setosa setosa setosa setosa
## [43] setosa setosa setosa setosa setosa setosa
## [49] setosa setosa versicolor versicolor versicolor versicolor
## [55] versicolor versicolor versicolor versicolor versicolor versicolor
## [61] versicolor versicolor versicolor versicolor versicolor versicolor
## [67] versicolor versicolor versicolor versicolor versicolor versicolor
## [73] versicolor versicolor versicolor versicolor versicolor versicolor
## [79] versicolor versicolor versicolor versicolor versicolor versicolor
## [85] versicolor versicolor versicolor versicolor versicolor versicolor
## [91] versicolor versicolor versicolor versicolor versicolor versicolor
## [97] versicolor versicolor versicolor versicolor virginica virginica
## [103] virginica virginica virginica virginica virginica virginica
## [109] virginica virginica virginica virginica virginica virginica
## [115] virginica virginica virginica virginica virginica virginica
## [121] virginica virginica virginica virginica virginica virginica
## [127] virginica virginica virginica virginica virginica virginica
## [133] virginica virginica virginica virginica virginica virginica
## [139] virginica virginica virginica virginica virginica virginica
## [145] virginica virginica virginica virginica virginica virginica
## Levels: setosa versicolor virginica
Funkcja subset
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
Edytowanie danych
## imię wiek wypowiedzenie staż
## obs1 Ola 21 TRUE 2
## obs2 Kamil 32 FALSE 5
## obs3 Maciek 38 FALSE 8
## obs4 Asia 40 FALSE 11
##📘 Listy (list)
## [[1]]
## [1] "Halina" "Jan"
##
## [[2]]
## [1] "siatkówka" "śpiew"
##
## [[3]]
## [1] "k" "m"
##
## [[4]]
## [1] 34 40
## $imię
## [1] "Halina" "Jan"
##
## $hobby
## [1] "siatkówka" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 45 30
## [1] "imię" "hobby" "płeć" "wiek"
## List of 4
## $ imię : chr [1:2] "Halina" "Jan"
## $ hobby: chr [1:2] "siatkówka" "śpiew"
## $ płeć : chr [1:2] "k" "m"
## $ wiek : num [1:2] 45 30
## [1] 45 30
## $wiek
## [1] 45 30
## [1] 45 30
## [1] 45 30
## [1] "m"
## $imię
## [1] "Halina" "Jan"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 45 30
## $imię
## [1] "Halina" "Jan" "Ania"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 45 30
## $imię
## [1] "Halina" "Jan" "Ania"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 45 30
##
## $konta.w.b
## [1] 1 2
## $imię
## [1] "Halina" "Jan" "Ania"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 45 30
## [1] "Halina" "Jan"
## $imię
## [1] "Halina" "Jan" "Ania"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 45 30
## $imię
## [1] "Ania" "Halina" "Jan"
## $imię
## [1] "Ania" "Halina" "Jan"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 30 45
## $imię
## [1] "Ania" "Halina" "Jan"
##
## $hobby
## [1] "czytanie" "śpiew"
##
## $płeć
## [1] "k" "m"
##
## $wiek
## [1] 30 45
📗 03. Instrukcje warunkowe oraz pętle
📘 Instrukcje warunkowe
Funkcja if
## [1] nierówność jest prawdziwa
## [1] "nierówność jest prawdziwa"
Funkcja if… else…
## [1] "nierówność jest fałszywa"
## [1] 90
x=34
if(x==liczba) {
print(paste("wybrana liczba x jest równa",liczba))
}else{
if(x>liczba){
print(paste("wybrana liczba x jest większa od",liczba))
}else{
print(paste("wybrana liczba x jest mniejsza od", liczba))
}}
## [1] "wybrana liczba x jest mniejsza od 90"
Funkcja ifelse
## [1] "nierówność jest fałszywa" "nierówność jest fałszywa"
## [3] "nierówność jest fałszywa" "nierówność jest fałszywa"
## [5] "nierówność jest fałszywa" "nierówność jest fałszywa"
## [7] "nierówność jest fałszywa" "nierówność jest fałszywa"
## [9] "nierówność jest fałszywa" "nierówność jest fałszywa"
## [11] "nierówność jest prawdziwa" "nierówność jest prawdziwa"
## [13] "nierówność jest prawdziwa" "nierówność jest prawdziwa"
## [15] "nierówność jest prawdziwa" "nierówność jest prawdziwa"
## nierówność
## 1 nierówność jest fałszywa
## 2 nierówność jest fałszywa
## 3 nierówność jest fałszywa
## 4 nierówność jest fałszywa
## 5 nierówność jest fałszywa
## 6 nierówność jest fałszywa
## 7 nierówność jest fałszywa
## 8 nierówność jest fałszywa
## 9 nierówność jest fałszywa
## 10 nierówność jest fałszywa
## 11 nierówność jest prawdziwa
## 12 nierówność jest prawdziwa
## 13 nierówność jest prawdziwa
## 14 nierówność jest prawdziwa
## 15 nierówność jest prawdziwa
## 16 nierówność jest prawdziwa
📘 Pętle
Pętla for
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 10
## [1] 20
## [1] 30
## [1] 40
## [1] 50
## [1] 60
## [1] 70
## [1] 80
# Wyznaczenie sumy pierwszych 20 liczb naturalnych (bez zera).
suma=0
liczby=1:20
for(i in liczby)
{
suma=suma+i
}
suma
## [1] 210
# Wyznaczenie sumy elementów wektora x.
x=c(23,45,13,22,11,-54)
suma=0
for(i in 1:length(x))
{
suma=suma+x[i]
}
suma
## [1] 60
# Wyznaczenie sumy różnic elementów wektora x.
x=c(12,34,4,-15,4,0)
suma=0
for(i in 2:length(x))
{
suma=suma+(x[i]-x[i-1]) #Nawias tutaj jest niepotrzebny, ale podkreśla czynność odejmowania.
}
suma
## [1] -12
# Wyświetlenie kolejnych różnic elementów wektora x.
x=c(12,34,4,-15,4,0)
for(i in 2:length(x))
{
print(x[i]-x[i-1])
}
## [1] 22
## [1] -30
## [1] -19
## [1] 19
## [1] -4
Pętla while
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
# Wyznaczenie sumy elementów wektora x.
x=c(12,-30,4,2,67,-18)
i=1
suma=0
while(i<=length(x))
{
suma=suma+x[i]
i=i+1
}
suma
## [1] 37
## [1] 37
Pętla repeat
## [1] "powtórzenie nr. 1"
## [1] "powtórzenie nr. 2"
## [1] "powtórzenie nr. 3"
## [1] "powtórzenie nr. 4"
## [1] "powtórzenie nr. 5"
Przykład 1
# Wyświetlić kolejne 10 potęg liczby 2 za pomocą:
#Pętli for
#1 sposób
for(i in 1:10)
{
print(2^i)
}
## [1] 2
## [1] 4
## [1] 8
## [1] 16
## [1] 32
## [1] 64
## [1] 128
## [1] 256
## [1] 512
## [1] 1024
## [1] 1 2 3 4 5 6 7 8 9 10
## [1] 2 4 8 16 32 64 128 256 512 1024
## [1] 2
## [1] 4
## [1] 8
## [1] 16
## [1] 32
## [1] 64
## [1] 128
## [1] 256
## [1] 512
## [1] 1024
## [1] 2 4 8 16 32 64 128 256 512 1024
## [1] 2
## [1] 4
## [1] 8
## [1] 16
## [1] 32
## [1] 64
## [1] 128
## [1] 256
## [1] 512
## [1] 1024
## [1] 2 4 8 16 32 64 128 256 512 1024
Przykład 2
# Napisać pętlę, która będzie wyświetlała kolejne 10 potęg liczby 3
# i będzie pokazywała komunikat: 3 do potęgi… wynosi….
x=1:10
x
## [1] 1 2 3 4 5 6 7 8 9 10
## [1] "2 do potęgi 1 wynosi 2"
## [1] "2 do potęgi 2 wynosi 4"
## [1] "2 do potęgi 3 wynosi 8"
## [1] "2 do potęgi 4 wynosi 16"
## [1] "2 do potęgi 5 wynosi 32"
## [1] "2 do potęgi 6 wynosi 64"
## [1] "2 do potęgi 7 wynosi 128"
## [1] "2 do potęgi 8 wynosi 256"
## [1] "2 do potęgi 9 wynosi 512"
## [1] "2 do potęgi 10 wynosi 1024"
Inne przykłady
Pętla for i instrukcja if
# Pętla wyświetlająca komentarz: "liczba ... jest parzysta"
# lub "liczba ... jest nieparzysta", w zależności od elementów wektora x.
x=c(21,52,35,12,25)
for(i in 1:length(x))
{
if(x[i]%%2==0){
print(paste("Liczba",x[i],"jest parzysta"))
}else{
print(paste("Liczba",x[i],"jest nieparzysta"))
}
}
## [1] "Liczba 21 jest nieparzysta"
## [1] "Liczba 52 jest parzysta"
## [1] "Liczba 35 jest nieparzysta"
## [1] "Liczba 12 jest parzysta"
## [1] "Liczba 25 jest nieparzysta"
Zagnieżdżona pętla for
# Napisać kod wyświetlający najpierw sumę pierwszego elementu z wektora x
# z kolejnymi elementami wektora y,
# a później sumę drugiego elementu wektora x z kolejnymi elementami wektora y itd.
x=c(12,2,3,4)
y=c(5,4,8,7)
for(i in 1:length(x))
{
for(j in 1:length(y))
{
print(x[i]+y[j])
}
}
## [1] 17
## [1] 16
## [1] 20
## [1] 19
## [1] 7
## [1] 6
## [1] 10
## [1] 9
## [1] 8
## [1] 7
## [1] 11
## [1] 10
## [1] 9
## [1] 8
## [1] 12
## [1] 11
📗 04. Funkcje i operacje matematyczne oraz statystyczne
📘 Funkcje i operacje matematyczne i statystyczne
## [1] -2 4 -12 4 -3
## [1] 7 5 6 10 -1
## [1] 15
## [1] 3
## [1] 2 4 6 10 3
## [1] -3
## [1] 10
## [1] 4
## 0% 25% 50% 75% 100%
## -3 -2 4 6 10
## 75%
## 6
## 10% 20% 30% 40% 50% 60% 70% 80% 90%
## -2.6 -2.2 -0.8 1.6 4.0 4.8 5.6 6.8 8.4
## [1] 24
## [1] 30
## [1] 30
## [1] 4.898979
## [1] 5.477226
## [1] 5.477226
## [1] NA
## [1] 11.25
## [1] 0
## [1] 2
📘 Funkcje użytkownika
# Konstrukcja funkcji obliczającej i zwracającej sumę liczb.
suma=function(a,b){
a+b
}
suma(3,5) #Suma liczb 3 i 5, gdzie a=3 i b=5.
## [1] 8
# Poniższy kod nie zwróci wyniku.
suma=function(a,b){
s=a+b
}
suma(3,5)
# s
# Obiekt s nie jest zwracany, bo istnieje w funkcji,
# ale nie w przestrzeni nazw, obiektów R.
# Funkcja return pozwala na zwracanie wyniku.
suma=function(a,b){
s=a+b
return(s)
}
suma(3,5)
## [1] 8
Wyniki zaleca się zapisać na liście
## $suma
## [1] 8
# Funkcja użytkowanika zwracająca sumę, różnicę, iloczyn, iloraz i potęgę liczb.
matma=function(a,b){
s=a+b
r=a-b
il=a/b
ilocz=a*b
p=a^b
list(suma=s,różnica=r,iloraz=il,iloczyn=ilocz,potęga=p)
}
matma(4,3)
## $suma
## [1] 7
##
## $różnica
## [1] 1
##
## $iloraz
## [1] 1.333333
##
## $iloczyn
## [1] 12
##
## $potęga
## [1] 64
## [1] 12
## $iloczyn
## [1] 12
## [1] 12
# Obliczenia w funkcji "matma" można wykonać
# nie tylko dla pojedynczych wartości, ale i dla wektorów.
x=1:5
y=c(2,5,1,3,2)
matma(x,y)
## $suma
## [1] 3 7 4 7 7
##
## $różnica
## [1] -1 -3 2 1 3
##
## $iloraz
## [1] 0.500000 0.400000 3.000000 1.333333 2.500000
##
## $iloczyn
## [1] 2 10 3 12 10
##
## $potęga
## [1] 1 32 3 64 25
# Funkcja zwracająca 4 największe wartości z wektora liczb.
x=1:20
największe=function(a){
s=sort(a,decreasing=T) #Dane sortowane są malejąco.
s[1:4] #Z danych posortowanych malejąco wybierane są 4 pierwsze wartości.
}
największe(x)
## [1] 20 19 18 17
# Funkcja użytkownika, która zwraca
# wartość minimalną, maksymalną, średnią,
# odchylenie ćwiartkowe i współczynnik asymetrii Yule'a Kendall'a.
f=function(a){
m=min(a)
mx=max(a)
s=mean(a)
o=sd(a)
q1=quantile(a,0.25)[[1]]
q2=quantile(a,0.5)[[1]]
q3=quantile(a,0.75)[[1]]
w=((q3-q2)-(q2-q1))/(q3-q1)
list(minimum=m,maksimum=mx,średnia=s,odchylenie_ćwiartkowe=o,wsp_asymetrii=w)
}
wektor=c(12,3,4,65,32)
f(wektor)
## $minimum
## [1] 3
##
## $maksimum
## [1] 65
##
## $średnia
## [1] 23.2
##
## $odchylenie_ćwiartkowe
## [1] 26.10939
##
## $wsp_asymetrii
## [1] 0.4285714
Wartości domyślne funkcji użytkownika
obliczenia=function(a=99,b=12){ #W tej linijce są definiowane wartości domyślne argumentów a i b.
s=a+b
r=a-b
il=a/b
ilocz=a*b
p=a^b
list(suma=s,różnica=r,iloraz=il,iloczyn=ilocz,potęga=p)
}
obliczenia(b=3) #Funkcja użytkownika zostanie wykonana dla a=99 (wartość domyślna) i b=3.
## $suma
## [1] 102
##
## $różnica
## [1] 96
##
## $iloraz
## [1] 33
##
## $iloczyn
## [1] 297
##
## $potęga
## [1] 970299
obliczenia(23) #Funkcja użytkownika zostanie wykonana dla a=23 i b=12 (wartość domyślna). 23 stoi na pierwszym miejscu i zostało potraktowane jako a, ponieważ a znajduje się na 1 miejscu w zapisie function().
## $suma
## [1] 35
##
## $różnica
## [1] 11
##
## $iloraz
## [1] 1.916667
##
## $iloczyn
## [1] 276
##
## $potęga
## [1] 2.191462e+16
## $suma
## [1] 7
##
## $różnica
## [1] -1
##
## $iloraz
## [1] 0.75
##
## $iloczyn
## [1] 12
##
## $potęga
## [1] 81
📗 05. Import i eksport danych. Wykresy. Zmienne losowe
📘 Eksport danych
# Uwaga. Przy eksporcie i później imporcie danych należy dostosować ścieżki dostępu
# do plików do własnego komputera.
dane=head(swiss) #Dane do eksportu.
dane
## Fertility Agriculture Examination Education Catholic
## Courtelary 80.2 17.0 15 12 9.96
## Delemont 83.1 45.1 6 9 84.84
## Franches-Mnt 92.5 39.7 5 5 93.40
## Moutier 85.8 36.5 12 7 33.77
## Neuveville 76.9 43.5 17 15 5.16
## Porrentruy 76.1 35.3 9 7 90.57
## Infant.Mortality
## Courtelary 22.2
## Delemont 22.2
## Franches-Mnt 20.2
## Moutier 20.3
## Neuveville 20.6
## Porrentruy 26.6
Eksport do pliku txt
📘 Import danych
Import danych z pliku txt
im1=read.table("swiss_dane.txt",header=T,sep="\t")
# Dla odczytu pliku a ustalonego katalogu przykładowa komenda może być następująca:
# im1=read.table("C:/Users/Ania/Desktop/swiss_dane.txt",header=T,sep="\t")
im1
## Fertility Agriculture Examination Education Catholic
## Courtelary 80.2 17.0 15 12 9.96
## Delemont 83.1 45.1 6 9 84.84
## Franches-Mnt 92.5 39.7 5 5 93.40
## Moutier 85.8 36.5 12 7 33.77
## Neuveville 76.9 43.5 17 15 5.16
## Porrentruy 76.1 35.3 9 7 90.57
## Infant.Mortality
## Courtelary 22.2
## Delemont 22.2
## Franches-Mnt 20.2
## Moutier 20.3
## Neuveville 20.6
## Porrentruy 26.6
Import danych z pliku csv (separatorem dziesiętnym jest ,)
## X Fertility Agriculture Examination Education Catholic
## 1 Courtelary 80.2 17.0 15 12 9.96
## 2 Delemont 83.1 45.1 6 9 84.84
## 3 Franches-Mnt 92.5 39.7 5 5 93.40
## 4 Moutier 85.8 36.5 12 7 33.77
## 5 Neuveville 76.9 43.5 17 15 5.16
## 6 Porrentruy 76.1 35.3 9 7 90.57
## Infant.Mortality
## 1 22.2
## 2 22.2
## 3 20.2
## 4 20.3
## 5 20.6
## 6 26.6
Import danych z pliku csv (separatorem dziesiętnym jest .)
## X Fertility Agriculture Examination Education Catholic
## 1 Courtelary 80.2 17.0 15 12 9.96
## 2 Delemont 83.1 45.1 6 9 84.84
## 3 Franches-Mnt 92.5 39.7 5 5 93.40
## 4 Moutier 85.8 36.5 12 7 33.77
## 5 Neuveville 76.9 43.5 17 15 5.16
## 6 Porrentruy 76.1 35.3 9 7 90.57
## Infant.Mortality
## 1 22.2
## 2 22.2
## 3 20.2
## 4 20.3
## 5 20.6
## 6 26.6
Wklejanie ze schowka
# Import danych za pomocą wklejenia danych ze schowka.
# Na początku pisze się kod, a następnie kopiuje dane, a potem wykonuje kod.
# Dane można skopiować również na początku.
im4=read.delim2("clipboard",header=T)
im4
## cena wartość ilość
## 1 5.64 231.30 41.0
## 2 5.94 246.93 41.6
## 3 5.79 237.34 41.0
## 4 5.49 225.09 41.0
## 5 5.58 223.26 40.0
## 6 5.68 227.20 40.0
## 7 5.09 193.42 38.0
📘 Katalog roboczy
## [1] "E:/Doc_UE/RStudio/Samouczek"
# Zmiana katalogu roboczego.
# Zamieniamy obecny katalog roboczy, żeby pracować w innym katalogu i nie musieć podawać ścieżki dostępu do plików przy imporcie czy eksporcie danych.
setwd("C:/Users/Ania/Desktop")
## Error in setwd("C:/Users/Ania/Desktop"): nie można zmienić katalogu roboczego
## [1] "E:/Doc_UE/RStudio/Samouczek"
# Eksport pliku do folderu o domyślnej lokalizacji.
write.csv2(dane,"iris1.csv") #Nie podaje się już ścieżki dostępu, tylko jak ma się nazywać plik zz danymi i jego rozszerzenie (w cudzysłowie).
# Import pliku z folderu o domyślnej lokalizacji.
read.csv2("iris1.csv") #Nie podaje się już ścieżki dostępu do pliku, tylko w cudzysłowie zamieszcza się nazwę i rozszerzenie pliku, który chcesię zaimportować do R.
## X Fertility Agriculture Examination Education Catholic
## 1 Courtelary 80.2 17.0 15 12 9.96
## 2 Delemont 83.1 45.1 6 9 84.84
## 3 Franches-Mnt 92.5 39.7 5 5 93.40
## 4 Moutier 85.8 36.5 12 7 33.77
## 5 Neuveville 76.9 43.5 17 15 5.16
## 6 Porrentruy 76.1 35.3 9 7 90.57
## Infant.Mortality
## 1 22.2
## 2 22.2
## 3 20.2
## 4 20.3
## 5 20.6
## 6 26.6
📘 Podstawowe wykresy
## [1] "ts"
Histogram
## Girth Height Volume
## 1 8.3 70 10.3
## 2 8.6 65 10.3
## 3 8.8 63 10.2
## 4 10.5 72 16.4
## 5 10.7 81 18.8
## 6 10.8 83 19.7
## 7 11.0 66 15.6
## 8 11.0 75 18.2
## 9 11.1 80 22.6
## 10 11.2 75 19.9
## 11 11.3 79 24.2
## 12 11.4 76 21.0
## 13 11.4 76 21.4
## 14 11.7 69 21.3
## 15 12.0 75 19.1
## 16 12.9 74 22.2
## 17 12.9 85 33.8
## 18 13.3 86 27.4
## 19 13.7 71 25.7
## 20 13.8 64 24.9
## 21 14.0 78 34.5
## 22 14.2 80 31.7
## 23 14.5 74 36.3
## 24 16.0 72 38.3
## 25 16.3 77 42.6
## 26 17.3 81 55.4
## 27 17.5 82 55.7
## 28 17.9 80 58.3
## 29 18.0 80 51.5
## 30 18.0 80 51.0
## 31 20.6 87 77.0
## [1] "white" "aliceblue" "antiquewhite"
## [4] "antiquewhite1" "antiquewhite2" "antiquewhite3"
## [7] "antiquewhite4" "aquamarine" "aquamarine1"
## [10] "aquamarine2" "aquamarine3" "aquamarine4"
## [13] "azure" "azure1" "azure2"
## [16] "azure3" "azure4" "beige"
## [19] "bisque" "bisque1" "bisque2"
## [22] "bisque3" "bisque4" "black"
## [25] "blanchedalmond" "blue" "blue1"
## [28] "blue2" "blue3" "blue4"
## [31] "blueviolet" "brown" "brown1"
## [34] "brown2" "brown3" "brown4"
## [37] "burlywood" "burlywood1" "burlywood2"
## [40] "burlywood3" "burlywood4" "cadetblue"
## [43] "cadetblue1" "cadetblue2" "cadetblue3"
## [46] "cadetblue4" "chartreuse" "chartreuse1"
## [49] "chartreuse2" "chartreuse3" "chartreuse4"
## [52] "chocolate" "chocolate1" "chocolate2"
## [55] "chocolate3" "chocolate4" "coral"
## [58] "coral1" "coral2" "coral3"
## [61] "coral4" "cornflowerblue" "cornsilk"
## [64] "cornsilk1" "cornsilk2" "cornsilk3"
## [67] "cornsilk4" "cyan" "cyan1"
## [70] "cyan2" "cyan3" "cyan4"
## [73] "darkblue" "darkcyan" "darkgoldenrod"
## [76] "darkgoldenrod1" "darkgoldenrod2" "darkgoldenrod3"
## [79] "darkgoldenrod4" "darkgray" "darkgreen"
## [82] "darkgrey" "darkkhaki" "darkmagenta"
## [85] "darkolivegreen" "darkolivegreen1" "darkolivegreen2"
## [88] "darkolivegreen3" "darkolivegreen4" "darkorange"
## [91] "darkorange1" "darkorange2" "darkorange3"
## [94] "darkorange4" "darkorchid" "darkorchid1"
## [97] "darkorchid2" "darkorchid3" "darkorchid4"
## [100] "darkred" "darksalmon" "darkseagreen"
## [103] "darkseagreen1" "darkseagreen2" "darkseagreen3"
## [106] "darkseagreen4" "darkslateblue" "darkslategray"
## [109] "darkslategray1" "darkslategray2" "darkslategray3"
## [112] "darkslategray4" "darkslategrey" "darkturquoise"
## [115] "darkviolet" "deeppink" "deeppink1"
## [118] "deeppink2" "deeppink3" "deeppink4"
## [121] "deepskyblue" "deepskyblue1" "deepskyblue2"
## [124] "deepskyblue3" "deepskyblue4" "dimgray"
## [127] "dimgrey" "dodgerblue" "dodgerblue1"
## [130] "dodgerblue2" "dodgerblue3" "dodgerblue4"
## [133] "firebrick" "firebrick1" "firebrick2"
## [136] "firebrick3" "firebrick4" "floralwhite"
## [139] "forestgreen" "gainsboro" "ghostwhite"
## [142] "gold" "gold1" "gold2"
## [145] "gold3" "gold4" "goldenrod"
## [148] "goldenrod1" "goldenrod2" "goldenrod3"
## [151] "goldenrod4" "gray" "gray0"
## [154] "gray1" "gray2" "gray3"
## [157] "gray4" "gray5" "gray6"
## [160] "gray7" "gray8" "gray9"
## [163] "gray10" "gray11" "gray12"
## [166] "gray13" "gray14" "gray15"
## [169] "gray16" "gray17" "gray18"
## [172] "gray19" "gray20" "gray21"
## [175] "gray22" "gray23" "gray24"
## [178] "gray25" "gray26" "gray27"
## [181] "gray28" "gray29" "gray30"
## [184] "gray31" "gray32" "gray33"
## [187] "gray34" "gray35" "gray36"
## [190] "gray37" "gray38" "gray39"
## [193] "gray40" "gray41" "gray42"
## [196] "gray43" "gray44" "gray45"
## [199] "gray46" "gray47" "gray48"
## [202] "gray49" "gray50" "gray51"
## [205] "gray52" "gray53" "gray54"
## [208] "gray55" "gray56" "gray57"
## [211] "gray58" "gray59" "gray60"
## [214] "gray61" "gray62" "gray63"
## [217] "gray64" "gray65" "gray66"
## [220] "gray67" "gray68" "gray69"
## [223] "gray70" "gray71" "gray72"
## [226] "gray73" "gray74" "gray75"
## [229] "gray76" "gray77" "gray78"
## [232] "gray79" "gray80" "gray81"
## [235] "gray82" "gray83" "gray84"
## [238] "gray85" "gray86" "gray87"
## [241] "gray88" "gray89" "gray90"
## [244] "gray91" "gray92" "gray93"
## [247] "gray94" "gray95" "gray96"
## [250] "gray97" "gray98" "gray99"
## [253] "gray100" "green" "green1"
## [256] "green2" "green3" "green4"
## [259] "greenyellow" "grey" "grey0"
## [262] "grey1" "grey2" "grey3"
## [265] "grey4" "grey5" "grey6"
## [268] "grey7" "grey8" "grey9"
## [271] "grey10" "grey11" "grey12"
## [274] "grey13" "grey14" "grey15"
## [277] "grey16" "grey17" "grey18"
## [280] "grey19" "grey20" "grey21"
## [283] "grey22" "grey23" "grey24"
## [286] "grey25" "grey26" "grey27"
## [289] "grey28" "grey29" "grey30"
## [292] "grey31" "grey32" "grey33"
## [295] "grey34" "grey35" "grey36"
## [298] "grey37" "grey38" "grey39"
## [301] "grey40" "grey41" "grey42"
## [304] "grey43" "grey44" "grey45"
## [307] "grey46" "grey47" "grey48"
## [310] "grey49" "grey50" "grey51"
## [313] "grey52" "grey53" "grey54"
## [316] "grey55" "grey56" "grey57"
## [319] "grey58" "grey59" "grey60"
## [322] "grey61" "grey62" "grey63"
## [325] "grey64" "grey65" "grey66"
## [328] "grey67" "grey68" "grey69"
## [331] "grey70" "grey71" "grey72"
## [334] "grey73" "grey74" "grey75"
## [337] "grey76" "grey77" "grey78"
## [340] "grey79" "grey80" "grey81"
## [343] "grey82" "grey83" "grey84"
## [346] "grey85" "grey86" "grey87"
## [349] "grey88" "grey89" "grey90"
## [352] "grey91" "grey92" "grey93"
## [355] "grey94" "grey95" "grey96"
## [358] "grey97" "grey98" "grey99"
## [361] "grey100" "honeydew" "honeydew1"
## [364] "honeydew2" "honeydew3" "honeydew4"
## [367] "hotpink" "hotpink1" "hotpink2"
## [370] "hotpink3" "hotpink4" "indianred"
## [373] "indianred1" "indianred2" "indianred3"
## [376] "indianred4" "ivory" "ivory1"
## [379] "ivory2" "ivory3" "ivory4"
## [382] "khaki" "khaki1" "khaki2"
## [385] "khaki3" "khaki4" "lavender"
## [388] "lavenderblush" "lavenderblush1" "lavenderblush2"
## [391] "lavenderblush3" "lavenderblush4" "lawngreen"
## [394] "lemonchiffon" "lemonchiffon1" "lemonchiffon2"
## [397] "lemonchiffon3" "lemonchiffon4" "lightblue"
## [400] "lightblue1" "lightblue2" "lightblue3"
## [403] "lightblue4" "lightcoral" "lightcyan"
## [406] "lightcyan1" "lightcyan2" "lightcyan3"
## [409] "lightcyan4" "lightgoldenrod" "lightgoldenrod1"
## [412] "lightgoldenrod2" "lightgoldenrod3" "lightgoldenrod4"
## [415] "lightgoldenrodyellow" "lightgray" "lightgreen"
## [418] "lightgrey" "lightpink" "lightpink1"
## [421] "lightpink2" "lightpink3" "lightpink4"
## [424] "lightsalmon" "lightsalmon1" "lightsalmon2"
## [427] "lightsalmon3" "lightsalmon4" "lightseagreen"
## [430] "lightskyblue" "lightskyblue1" "lightskyblue2"
## [433] "lightskyblue3" "lightskyblue4" "lightslateblue"
## [436] "lightslategray" "lightslategrey" "lightsteelblue"
## [439] "lightsteelblue1" "lightsteelblue2" "lightsteelblue3"
## [442] "lightsteelblue4" "lightyellow" "lightyellow1"
## [445] "lightyellow2" "lightyellow3" "lightyellow4"
## [448] "limegreen" "linen" "magenta"
## [451] "magenta1" "magenta2" "magenta3"
## [454] "magenta4" "maroon" "maroon1"
## [457] "maroon2" "maroon3" "maroon4"
## [460] "mediumaquamarine" "mediumblue" "mediumorchid"
## [463] "mediumorchid1" "mediumorchid2" "mediumorchid3"
## [466] "mediumorchid4" "mediumpurple" "mediumpurple1"
## [469] "mediumpurple2" "mediumpurple3" "mediumpurple4"
## [472] "mediumseagreen" "mediumslateblue" "mediumspringgreen"
## [475] "mediumturquoise" "mediumvioletred" "midnightblue"
## [478] "mintcream" "mistyrose" "mistyrose1"
## [481] "mistyrose2" "mistyrose3" "mistyrose4"
## [484] "moccasin" "navajowhite" "navajowhite1"
## [487] "navajowhite2" "navajowhite3" "navajowhite4"
## [490] "navy" "navyblue" "oldlace"
## [493] "olivedrab" "olivedrab1" "olivedrab2"
## [496] "olivedrab3" "olivedrab4" "orange"
## [499] "orange1" "orange2" "orange3"
## [502] "orange4" "orangered" "orangered1"
## [505] "orangered2" "orangered3" "orangered4"
## [508] "orchid" "orchid1" "orchid2"
## [511] "orchid3" "orchid4" "palegoldenrod"
## [514] "palegreen" "palegreen1" "palegreen2"
## [517] "palegreen3" "palegreen4" "paleturquoise"
## [520] "paleturquoise1" "paleturquoise2" "paleturquoise3"
## [523] "paleturquoise4" "palevioletred" "palevioletred1"
## [526] "palevioletred2" "palevioletred3" "palevioletred4"
## [529] "papayawhip" "peachpuff" "peachpuff1"
## [532] "peachpuff2" "peachpuff3" "peachpuff4"
## [535] "peru" "pink" "pink1"
## [538] "pink2" "pink3" "pink4"
## [541] "plum" "plum1" "plum2"
## [544] "plum3" "plum4" "powderblue"
## [547] "purple" "purple1" "purple2"
## [550] "purple3" "purple4" "red"
## [553] "red1" "red2" "red3"
## [556] "red4" "rosybrown" "rosybrown1"
## [559] "rosybrown2" "rosybrown3" "rosybrown4"
## [562] "royalblue" "royalblue1" "royalblue2"
## [565] "royalblue3" "royalblue4" "saddlebrown"
## [568] "salmon" "salmon1" "salmon2"
## [571] "salmon3" "salmon4" "sandybrown"
## [574] "seagreen" "seagreen1" "seagreen2"
## [577] "seagreen3" "seagreen4" "seashell"
## [580] "seashell1" "seashell2" "seashell3"
## [583] "seashell4" "sienna" "sienna1"
## [586] "sienna2" "sienna3" "sienna4"
## [589] "skyblue" "skyblue1" "skyblue2"
## [592] "skyblue3" "skyblue4" "slateblue"
## [595] "slateblue1" "slateblue2" "slateblue3"
## [598] "slateblue4" "slategray" "slategray1"
## [601] "slategray2" "slategray3" "slategray4"
## [604] "slategrey" "snow" "snow1"
## [607] "snow2" "snow3" "snow4"
## [610] "springgreen" "springgreen1" "springgreen2"
## [613] "springgreen3" "springgreen4" "steelblue"
## [616] "steelblue1" "steelblue2" "steelblue3"
## [619] "steelblue4" "tan" "tan1"
## [622] "tan2" "tan3" "tan4"
## [625] "thistle" "thistle1" "thistle2"
## [628] "thistle3" "thistle4" "tomato"
## [631] "tomato1" "tomato2" "tomato3"
## [634] "tomato4" "turquoise" "turquoise1"
## [637] "turquoise2" "turquoise3" "turquoise4"
## [640] "violet" "violetred" "violetred1"
## [643] "violetred2" "violetred3" "violetred4"
## [646] "wheat" "wheat1" "wheat2"
## [649] "wheat3" "wheat4" "whitesmoke"
## [652] "yellow" "yellow1" "yellow2"
## [655] "yellow3" "yellow4" "yellowgreen"
## [1] "magenta1" "grey48" "lightcyan2" "grey92"
## [5] "seagreen3" "slategray2" "hotpink" "blue4"
## [9] "orchid2" "antiquewhite1"
Wykres pudełkowy
## Girth Height Volume
## 1 8.3 70 10.3
## 2 8.6 65 10.3
## 3 8.8 63 10.2
## 4 10.5 72 16.4
## 5 10.7 81 18.8
## 6 10.8 83 19.7
Wykres słupkowy
## weight feed
## 1 179 horsebean
## 2 160 horsebean
## 3 136 horsebean
## 4 227 horsebean
## 5 217 horsebean
## 6 168 horsebean
## [1] horsebean horsebean horsebean horsebean horsebean horsebean horsebean
## [8] horsebean horsebean horsebean linseed linseed linseed linseed
## [15] linseed linseed linseed linseed linseed linseed linseed
## [22] linseed soybean soybean soybean soybean soybean soybean
## [29] soybean soybean soybean soybean soybean soybean soybean
## [36] soybean sunflower sunflower sunflower sunflower sunflower sunflower
## [43] sunflower sunflower sunflower sunflower sunflower sunflower meatmeal
## [50] meatmeal meatmeal meatmeal meatmeal meatmeal meatmeal meatmeal
## [57] meatmeal meatmeal meatmeal casein casein casein casein
## [64] casein casein casein casein casein casein casein
## [71] casein
## Levels: casein horsebean linseed meatmeal soybean sunflower
# barplot(chickwts$feed)
# Powyższy kod nie zadziała, ponieważ dane powinny być wektorem lub macierzą.
t=table(chickwts$feed)
t
##
## casein horsebean linseed meatmeal soybean sunflower
## 12 10 12 11 14 12
📘 Elementy rachunku prawdopodobieństwa
# Elementy rachunku prawdopodobieństwa: generowanie wartości z rozkładów, gęstość, dystrybuanta i kwantyle.
Generowanie wartości z rozkładów
## [1] 1.42259782 0.15645853 0.94052989 0.80946081 0.39205098 -0.26404580
## [7] -0.07583791 -1.12479120 -0.18046809 0.03940571 -2.20504604 -0.24474266
## [13] -0.75208437 -0.18792326 -0.97913211 -0.07295414 1.68844351 -1.34118754
## [19] -0.65947108 0.65928451
## [1] 5.59987683 0.07432436 20.99328385 34.45403746 23.01285729
## [6] 17.58289915 -17.07485784 18.62996258 43.45863449 31.07642263
## [11] 1.55531180 33.30514347 28.41221306 21.10418311 14.05597067
## [16] 31.96853516 23.59456233 20.93164432 13.91634095 38.96935963
## [21] 23.05423067 37.45732620 31.00306496 42.86393709 3.82134555
## [26] 18.50214501 35.12302777 9.04302600 31.94653868 29.15428849
## [31] 26.41909985 -4.49204698 25.25291681 36.68723513 22.57714854
## [36] 33.96282502 30.61850613 43.95016343 19.90543793 3.52365507
## [41] 20.30306451 4.82819716 11.47709279 19.74518630 16.03683953
## [46] 15.58530154 20.15376458 -3.44680584 19.70186068 -3.79057178
## [51] 27.64487938 3.86833946 31.71024677 4.76093922 24.32350577
## [56] 11.16977951 12.14646581 5.47711135 23.71486499 11.98027028
## [61] 26.64302859 32.20415409 23.14211190 27.39858708 30.93979073
## [66] 41.67615444 16.37824321 8.12091431 37.28172164 -2.53678901
## [71] 19.50725889 19.20168399 13.10659444 11.80659378 4.60330805
## [76] 15.09137862 22.91064004 30.19687241 6.59814563 18.62888028
## [81] 44.99969942 30.95819526 -18.61079919 22.31708658 21.02680821
## [86] 27.04822387 14.80040247 19.93225363 43.28658636 31.93845967
## [91] 18.71822779 18.92041885 38.05712318 23.45524083 30.61213723
## [96] 31.36767455 21.63666169 35.49469095 16.97320444 -2.18985333
## [1] 13.2767224 0.5230290 19.8586624 17.0637876 9.2437631 11.8105451
## [7] 32.0510662 -4.3389698 35.1169118 27.1317195 12.2278926 -1.1559030
## [13] 33.0547331 29.1389248 29.8475877 38.7897144 56.7148155 31.0264210
## [19] 21.6831829 20.1507707 25.3150689 20.1402011 32.1968025 0.6274263
## [25] 33.0179267 36.6992192 28.9072288 21.5871563 23.3826964 31.0877411
## [31] 20.1412921 15.1277781 22.8142253 11.5440427 12.3165976 22.2366117
## [37] 17.0794799 14.3949423 11.2150593 42.9177931 21.1871559 22.6997703
## [43] 14.3110174 20.0412733 16.5949192 -4.9085074 5.3403582 35.5634639
## [49] 14.2134502 41.1028285 17.0123031 8.8815381 20.4261018 -4.1720279
## [55] 22.4467534 39.6339418 22.0286148 23.1242377 5.2250418 41.6564318
## [61] 22.1716486 24.6884412 11.8281261 30.5816345 22.0050151 24.7808802
## [67] 22.4088696 27.1270145 5.7496416 18.1898869 36.0614702 22.2177788
## [73] 15.6697294 12.5493568 22.7473334 23.1379608 20.6126143 8.6592480
## [79] 39.2836035 41.0855717 15.7589361 15.0860294 17.4766734 13.0216354
## [85] 4.3286587 13.3746329 25.5705937 3.3916735 4.8685245 51.4091380
## [91] 22.1601325 20.2616078 5.6981535 22.2053423 11.7951397 47.5844885
## [97] 13.6898463 10.3904062 22.1536463 20.5738689
## [1] 1.7197622 1.8849113 2.7793542 2.0352542 2.0646439 2.8575325 2.2304581
## [8] 1.3674694 1.6565736 1.7771690 2.6120409 2.1799069 2.2003857 2.0553414
## [15] 1.7220794 2.8934566 2.2489252 1.0166914 2.3506780 1.7636043 1.4660881
## [22] 1.8910125 1.4869978 1.6355544 1.6874804 1.1566533 2.4188935 2.0766866
## [29] 1.4309315 2.6269075 2.2132321 1.8524643 2.4475628 2.4390667 2.4107905
## [36] 2.3443201 2.2769588 1.9690441 1.8470187 1.8097645 1.6526465 1.8960414
## [43] 1.3673018 3.0844780 2.6039810 1.4384457 1.7985576 1.7666723 2.3899826
## [50] 1.9583155 2.1266593 1.9857266 1.9785648 2.6843011 1.8871145 2.7582353
## [57] 1.2256236 2.2923069 2.0619271 2.1079708 2.1898197 1.7488383 1.8333963
## [64] 1.4907123 1.4641044 2.1517643 2.2241049 2.0265021 2.4611337 3.0250423
## [71] 1.7544844 0.8454156 2.5028693 1.6453996 1.6559957 2.5127857 1.8576135
## [78] 1.3896411 2.0906517 1.9305543 2.0028821 2.1926402 1.8146700 2.3221883
## [85] 1.8897567 2.1658910 2.5484195 2.2175907 1.8370342 2.5744038 2.4967519
## [92] 2.2741985 2.1193659 1.6860470 2.6803262 1.6998702 3.0936665 2.7663053
## [99] 1.8821498 1.4867895
## [1] 0.238726027 0.962358936 0.601365726 0.515029727 0.402573342 0.880246541
## [7] 0.364091865 0.288239281 0.170645235 0.172171746 0.482042606 0.252964929
## [13] 0.216254790 0.674376388 0.047663627 0.700853087 0.351888638 0.408943998
## [19] 0.820951324 0.918857348 0.282528330 0.961104794 0.728394428 0.686375082
## [25] 0.052843943 0.395220135 0.477845380 0.560253264 0.698261595 0.915683538
## [31] 0.618351227 0.428421509 0.542080367 0.058478489 0.260856857 0.397151953
## [37] 0.197744737 0.831927563 0.152887223 0.803418542 0.546826157 0.662317642
## [43] 0.171698494 0.633055360 0.311869747 0.724554346 0.398939825 0.969356411
## [49] 0.967398371 0.726702539 0.257216746 0.221787935 0.593045652 0.267521432
## [55] 0.531070399 0.785291671 0.168060811 0.404399181 0.471576278 0.868106807
## [61] 0.925707956 0.881977559 0.674186843 0.950166979 0.516444894 0.576519021
## [67] 0.336331206 0.347324631 0.020024301 0.502813046 0.871043414 0.006300784
## [73] 0.072057124 0.164211225 0.770334074 0.735184306 0.971875636 0.466472377
## [79] 0.074384513 0.648818124 0.758593170 0.137106081 0.396584595 0.224985329
## [85] 0.057958561 0.395892688 0.064928300 0.225886433 0.054629109 0.670282040
## [91] 0.297741783 0.100721582 0.071904097 0.880440569 0.754247402 0.816605888
## [97] 0.982140374 0.103599645 0.099041829 0.798831611
## [1] 0.69683236 0.82060066 -0.02475866 -0.30644712 -0.30056295 -3.47363186
## [7] -1.31714799 -0.46532917 -0.01932117 5.99328177 -0.02021276 -2.00872529
## [13] -0.57321111 -0.16850664 -1.41785209 -1.20204135 -0.52541258 1.23078376
## [19] 0.63466850 2.34977229 1.88108475 -2.20687007 6.41947266 -0.25537575
## [25] -0.66606686 -0.01114930 -0.06244739 0.18466027 -1.25469184 0.08335478
## [31] 0.35642587 -0.53703200 1.00405279 -0.43246746 -1.34543674 1.92487880
## [37] -0.09990203 -1.26894058 0.83961497 -0.15032212 -0.83106377 0.01523773
## [43] 1.00633019 -0.12547272 -1.77088587 -3.22061623 -0.07322264 -0.50701695
## [49] -0.50295934 0.07520585 0.18176418 -0.85664567 0.67830426 1.78504381
## [55] -0.24748408 0.93705785 1.97205423 0.21457114 0.36545186 1.70894197
## [61] -0.34914733 0.93052910 4.51244483 -1.46438907 1.56468817 0.49041375
## [67] 1.11727468 0.43312514 0.29718297 -2.04567260 -1.36525725 -0.66750687
## [73] -0.49447123 -0.93744377 0.51235989 -8.61233265 0.70151938 0.89078422
## [79] -0.21608493 -0.81058160 -0.25568636 -2.63293864 -1.00076993 -3.08952378
## [85] -0.01260136 -0.20001064 0.93324733 -0.06879633 2.80205973 -0.95441015
## [91] -0.78877949 0.42289498 0.75830163 0.53165633 0.85237062 0.55751630
## [97] 0.65719967 1.41166493 0.32995741 2.43177705
## [1] 3.3850922 3.2984545 1.6909650 0.1576374 6.6977146 0.4255763 2.1398074
## [8] 3.0006399 3.1373579 2.7302180 5.8218036 0.4584186 1.6201983 0.7657052
## [15] 2.9739183 4.1567176 5.0755977 1.1720594 1.3637716 3.0758988 2.2844511
## [22] 3.8891418 0.6878708 6.9350646 2.1324304 4.8828211 7.9019783 1.4766519
## [29] 0.5130345 1.5948243 1.9896741 2.0411105 2.6774314 5.5385065 2.2499958
## [36] 3.6797567 3.8610315 4.2479516 1.0161754 5.9954669 2.3432680 2.7945191
## [43] 3.2567545 0.9773518 4.6550916 1.8906219 9.3182640 2.7903987 1.0009019
## [50] 2.4556660 4.1543027 2.4323302 0.9571249 2.2230586 0.3827861 0.4611069
## [57] 1.7458361 1.7893021 3.1419871 0.1678722 0.4058235 3.9225606 5.0094145
## [64] 2.7821002 0.9680566 1.3273275 1.1724402 0.9700765 4.1080274 4.1016847
## [71] 0.3211031 3.6369040 2.6853121 0.6705557 0.7415162 2.1502738 6.2488106
## [78] 2.9134959 4.3211165 1.4858849 1.6249270 2.3603811 0.6411606 0.4162545
## [85] 2.3591057 2.3395796 4.2461522 2.3558489 3.5971023 1.0379425 4.3845427
## [92] 5.5239566 0.4184004 3.5731431 2.1469375 0.1211514 0.7123071 1.8005444
## [99] 1.9840761 2.8355945
## [1] 0.52610805 1.74521305 1.02604707 3.25032204 1.52430340 0.28097148
## [7] 0.38109784 0.55076467 0.69027447 0.48196860 4.41313923 0.73094071
## [13] 0.37996535 2.06320618 0.84712631 0.61603119 0.71032146 0.62933857
## [19] 2.82465565 0.41869146 2.67819390 1.77195322 0.53829047 1.08785238
## [25] 1.95254581 1.14638625 0.27337680 0.58384781 0.33364606 0.77739386
## [31] 0.48367768 1.58395506 0.85833052 0.08154664 0.28514547 0.84480764
## [37] 2.62597743 1.21076087 2.08760690 1.89972530 1.17307090 0.21546587
## [43] 1.24627808 1.35692310 17.71356434 0.20513635 1.58029619 2.90312814
## [49] 0.07009730 1.31514070 0.00564881 3.51205181 2.68952096 1.18568879
## [55] 1.58932593 2.01802763 1.59471709 0.75218091 0.59938150 1.70882973
## [61] 1.77348471 0.28766346 0.17464260 1.10959418 0.83223825 4.74271587
## [67] 3.58385752 0.09552937 1.26651119 0.28091568 0.48236156 12.00955112
## [73] 0.69463279 0.71923276 1.15728964 1.90554090 5.86638409 0.44790960
## [79] 0.09469444 2.63703334 0.09821284 0.21453281 0.17428717 3.00294331
## [85] 0.38385209 3.40359044 0.66721172 0.69316870 1.09003637 0.85520126
## [91] 3.29537360 0.66066119 0.27395316 0.10956574 0.26362624 0.53813684
## [97] 0.24114574 0.05285393 0.37716631 0.73218773
Gęstość
## [1] 0.3989423
## [1] 0.004431848
## [1] 0.004431848 0.005142641 0.005952532 0.006872767 0.007915452 0.009093563
## [7] 0.010420935 0.011912244 0.013582969 0.015449347 0.017528300 0.019837354
## [13] 0.022394530 0.025218220 0.028327038 0.031739652 0.035474593 0.039550042
## [19] 0.043983596 0.048792019 0.053990967 0.059594706 0.065615815 0.072064874
## [25] 0.078950158 0.086277319 0.094049077 0.102264925 0.110920835 0.120009001
## [31] 0.129517596 0.139430566 0.149727466 0.160383327 0.171368592 0.182649085
## [37] 0.194186055 0.205936269 0.217852177 0.229882141 0.241970725 0.254059056
## [43] 0.266085250 0.277984886 0.289691553 0.301137432 0.312253933 0.322972360
## [49] 0.333224603 0.342943855 0.352065327 0.360526962 0.368270140 0.375240347
## [55] 0.381387815 0.386668117 0.391042694 0.394479331 0.396952547 0.398443914
## [61] 0.398942280 0.398443914 0.396952547 0.394479331 0.391042694 0.386668117
## [67] 0.381387815 0.375240347 0.368270140 0.360526962 0.352065327 0.342943855
## [73] 0.333224603 0.322972360 0.312253933 0.301137432 0.289691553 0.277984886
## [79] 0.266085250 0.254059056 0.241970725 0.229882141 0.217852177 0.205936269
## [85] 0.194186055 0.182649085 0.171368592 0.160383327 0.149727466 0.139430566
## [91] 0.129517596 0.120009001 0.110920835 0.102264925 0.094049077 0.086277319
## [97] 0.078950158 0.072064874 0.065615815 0.059594706 0.053990967 0.048792019
## [103] 0.043983596 0.039550042 0.035474593 0.031739652 0.028327038 0.025218220
## [109] 0.022394530 0.019837354 0.017528300 0.015449347 0.013582969 0.011912244
## [115] 0.010420935 0.009093563 0.007915452 0.006872767 0.005952532 0.005142641
## [121] 0.004431848
## [1] -3.00000000 -2.89915966 -2.79831933 -2.69747899 -2.59663866 -2.49579832
## [7] -2.39495798 -2.29411765 -2.19327731 -2.09243697 -1.99159664 -1.89075630
## [13] -1.78991597 -1.68907563 -1.58823529 -1.48739496 -1.38655462 -1.28571429
## [19] -1.18487395 -1.08403361 -0.98319328 -0.88235294 -0.78151261 -0.68067227
## [25] -0.57983193 -0.47899160 -0.37815126 -0.27731092 -0.17647059 -0.07563025
## [31] 0.02521008 0.12605042 0.22689076 0.32773109 0.42857143 0.52941176
## [37] 0.63025210 0.73109244 0.83193277 0.93277311 1.03361345 1.13445378
## [43] 1.23529412 1.33613445 1.43697479 1.53781513 1.63865546 1.73949580
## [49] 1.84033613 1.94117647 2.04201681 2.14285714 2.24369748 2.34453782
## [55] 2.44537815 2.54621849 2.64705882 2.74789916 2.84873950 2.94957983
## [61] 3.05042017 3.15126050 3.25210084 3.35294118 3.45378151 3.55462185
## [67] 3.65546218 3.75630252 3.85714286 3.95798319 4.05882353 4.15966387
## [73] 4.26050420 4.36134454 4.46218487 4.56302521 4.66386555 4.76470588
## [79] 4.86554622 4.96638655 5.06722689 5.16806723 5.26890756 5.36974790
## [85] 5.47058824 5.57142857 5.67226891 5.77310924 5.87394958 5.97478992
## [91] 6.07563025 6.17647059 6.27731092 6.37815126 6.47899160 6.57983193
## [97] 6.68067227 6.78151261 6.88235294 6.98319328 7.08403361 7.18487395
## [103] 7.28571429 7.38655462 7.48739496 7.58823529 7.68907563 7.78991597
## [109] 7.89075630 7.99159664 8.09243697 8.19327731 8.29411765 8.39495798
## [115] 8.49579832 8.59663866 8.69747899 8.79831933 8.89915966 9.00000000
Przedstawienie kilku wykresów gęstości na 1 wykresie
## [1] -5.00000000 -4.91596639 -4.83193277 -4.74789916 -4.66386555 -4.57983193
## [7] -4.49579832 -4.41176471 -4.32773109 -4.24369748 -4.15966387 -4.07563025
## [13] -3.99159664 -3.90756303 -3.82352941 -3.73949580 -3.65546218 -3.57142857
## [19] -3.48739496 -3.40336134 -3.31932773 -3.23529412 -3.15126050 -3.06722689
## [25] -2.98319328 -2.89915966 -2.81512605 -2.73109244 -2.64705882 -2.56302521
## [31] -2.47899160 -2.39495798 -2.31092437 -2.22689076 -2.14285714 -2.05882353
## [37] -1.97478992 -1.89075630 -1.80672269 -1.72268908 -1.63865546 -1.55462185
## [43] -1.47058824 -1.38655462 -1.30252101 -1.21848739 -1.13445378 -1.05042017
## [49] -0.96638655 -0.88235294 -0.79831933 -0.71428571 -0.63025210 -0.54621849
## [55] -0.46218487 -0.37815126 -0.29411765 -0.21008403 -0.12605042 -0.04201681
## [61] 0.04201681 0.12605042 0.21008403 0.29411765 0.37815126 0.46218487
## [67] 0.54621849 0.63025210 0.71428571 0.79831933 0.88235294 0.96638655
## [73] 1.05042017 1.13445378 1.21848739 1.30252101 1.38655462 1.47058824
## [79] 1.55462185 1.63865546 1.72268908 1.80672269 1.89075630 1.97478992
## [85] 2.05882353 2.14285714 2.22689076 2.31092437 2.39495798 2.47899160
## [91] 2.56302521 2.64705882 2.73109244 2.81512605 2.89915966 2.98319328
## [97] 3.06722689 3.15126050 3.23529412 3.31932773 3.40336134 3.48739496
## [103] 3.57142857 3.65546218 3.73949580 3.82352941 3.90756303 3.99159664
## [109] 4.07563025 4.15966387 4.24369748 4.32773109 4.41176471 4.49579832
## [115] 4.57983193 4.66386555 4.74789916 4.83193277 4.91596639 5.00000000
plot(z,dnorm(z),type="l")
lines(z,dnorm(z,0,3),type="l",lty="dotted")
lines(z,dnorm(z,0,0.5),type="l",lty="dashed")
# Ostatnia linia wychodzi poza obszar wykresu, ponieważ te linie dorysowywane są do wykresu,
# czyli nie zmieniają jego rozmiaru.
# Wykres uzyskany za pomocą funkcji plot() determinuje rozmiar wykresu na stałe.
z=seq(-10,10,length=120)
plot(z,dnorm(z,0,1),type="l")
lines(z,dnorm(z,2,1),type="l",lty="dotted")
lines(z,dnorm(z,0,2),type="l",lty="dashed")
Dodawanie legendy do wykresu
Przykład
# Wygeneruj 100 wartości z rozkładu normalnego o średniej równej -3 i odchyleniu standardowym równym 1.
# Wygeneruj 100 wartości z rozkładu t-Studenta o 8 stopniach swobody.
# Wygeneruj 100 wartości z rozkładu Chikwadrat o 2 stopniach swobody.
# Przedstaw histogramy dla wygenerowanych wartości na 1 wykresie jeden obok drugiego.
x=rnorm(100,-3,1)
y=rt(100,8)
z=rchisq(100,2)
par(mfrow=c(1,3))
hist(x)
hist(y)
hist(z)
📗 06. Wizualizacja z pakietem lattice
📘 Przekształcenie zbioru danych
# Wykorzystany zostanie zbiór danych, który dostępny jest w R pod nazwą: airquality.
aq_data=airquality
# Przekształcenie zbioru danych poprzez zamianę kolumny Month na typu factor.
aq_data$Month=factor(aq_data$Month,
levels=c(5,6,7,8,9),
labels=c("maj","czerwiec","lipiec","sierpień","wrzesień"))
head(aq_data)
## Ozone Solar.R Wind Temp Month Day
## 1 41 190 7.4 67 maj 1
## 2 36 118 8.0 72 maj 2
## 3 12 149 12.6 74 maj 3
## 4 18 313 11.5 62 maj 4
## 5 NA NA 14.3 56 maj 5
## 6 28 NA 14.9 66 maj 6
📘 Wykresy
Jądrowy estymator gęstości
# Jądrowy estymator gęstości zmiennej Temp (maksymalna temperatura).
densityplot(~Temp,data=aq_data)
# Jądrowy estymator gęstości zmiennej Temp osobno dla każdego z miesięcy.
densityplot(~Temp|Month, data=aq_data)
Wykres rozrzutu
# Zestawienie średniego poziomu ozonu i przeciętnej prędkości wiatru w milach na godzinę.
xyplot(Ozone~Wind,data=aq_data)
# Wyselekcjonowanie danych dla miesięcy letnich (czerwiec-sierpień).
aq_data_new=aq_data[aq_data[,"Month"]=="czerwiec"|aq_data[,"Month"]=="lipiec"|aq_data[,"Month"]=="sierpień",]
aq_data_new$Month=factor(aq_data_new$Month,levels = c("czerwiec","lipiec","sierpień"),labels=c("czerwiec","lipiec","sierpień"))
# Wyróżnienie danych z poszczególnych miesięcy innym kolorem.
xyplot(Ozone~Wind,group=Month,data=aq_data_new,pch=19,col=c(2,3,4))
Wykres pudełkowy
Wykres słupkowy
📗 07. Model liniowy
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
📘 Model liniowy z 1 zmienną objaśniającą
Zmienna objaśniana: spalanie paliwa, zmienna objaśniająca: waga samochodu.
##
## Call:
## lm(formula = mpg ~ wt, data = mtcars)
##
## Coefficients:
## (Intercept) wt
## 37.285 -5.344
##
## Call:
## lm(formula = mpg ~ wt, data = mtcars)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.5432 -2.3647 -0.1252 1.4096 6.8727
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 37.2851 1.8776 19.858 < 2e-16 ***
## wt -5.3445 0.5591 -9.559 1.29e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.046 on 30 degrees of freedom
## Multiple R-squared: 0.7528, Adjusted R-squared: 0.7446
## F-statistic: 91.38 on 1 and 30 DF, p-value: 1.294e-10
Wyświetlenie wyników
Współczynniki i inne informacje (dotyczące testowania istotności parametrów)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 37.285126 1.877627 19.857575 8.241799e-19
## wt -5.344472 0.559101 -9.559044 1.293959e-10
Wartość współczynnika kierunkowego
## [1] -5.344472
## [1] -5.344472
Współczynnik R-kwadrat
## [1] 0.7528328
Reszty
## Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive
## -2.2826106 -0.9197704 -2.0859521 1.2973499
## Hornet Sportabout Valiant Duster 360 Merc 240D
## -0.2001440 -0.6932545 -3.9053627 4.1637381
## Merc 230 Merc 280 Merc 280C Merc 450SE
## 2.3499593 0.2998560 -1.1001440 0.8668731
## Merc 450SL Merc 450SLC Cadillac Fleetwood Lincoln Continental
## -0.0502472 -1.8830236 1.1733496 2.1032876
## Chrysler Imperial Fiat 128 Honda Civic Toyota Corolla
## 5.9810744 6.8727113 1.7461954 6.4219792
## Toyota Corona Dodge Challenger AMC Javelin Camaro Z28
## -2.6110037 -2.9725862 -3.7268663 -3.4623553
## Pontiac Firebird Fiat X1-9 Porsche 914-2 Lotus Europa
## 2.4643670 0.3564263 0.1520430 1.2010593
## Ford Pantera L Ferrari Dino Maserati Bora Volvo 142E
## -4.5431513 -2.7809399 -3.2053627 -1.0274952
## Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive
## -2.2826106 -0.9197704 -2.0859521 1.2973499
## Hornet Sportabout Valiant Duster 360 Merc 240D
## -0.2001440 -0.6932545 -3.9053627 4.1637381
## Merc 230 Merc 280 Merc 280C Merc 450SE
## 2.3499593 0.2998560 -1.1001440 0.8668731
## Merc 450SL Merc 450SLC Cadillac Fleetwood Lincoln Continental
## -0.0502472 -1.8830236 1.1733496 2.1032876
## Chrysler Imperial Fiat 128 Honda Civic Toyota Corolla
## 5.9810744 6.8727113 1.7461954 6.4219792
## Toyota Corona Dodge Challenger AMC Javelin Camaro Z28
## -2.6110037 -2.9725862 -3.7268663 -3.4623553
## Pontiac Firebird Fiat X1-9 Porsche 914-2 Lotus Europa
## 2.4643670 0.3564263 0.1520430 1.2010593
## Ford Pantera L Ferrari Dino Maserati Bora Volvo 142E
## -4.5431513 -2.7809399 -3.2053627 -1.0274952
Wartości teoretyczne
## Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive
## 23.282611 21.919770 24.885952 20.102650
## Hornet Sportabout Valiant Duster 360 Merc 240D
## 18.900144 18.793255 18.205363 20.236262
## Merc 230 Merc 280 Merc 280C Merc 450SE
## 20.450041 18.900144 18.900144 15.533127
## Merc 450SL Merc 450SLC Cadillac Fleetwood Lincoln Continental
## 17.350247 17.083024 9.226650 8.296712
## Chrysler Imperial Fiat 128 Honda Civic Toyota Corolla
## 8.718926 25.527289 28.653805 27.478021
## Toyota Corona Dodge Challenger AMC Javelin Camaro Z28
## 24.111004 18.472586 18.926866 16.762355
## Pontiac Firebird Fiat X1-9 Porsche 914-2 Lotus Europa
## 16.735633 26.943574 25.847957 29.198941
## Ford Pantera L Ferrari Dino Maserati Bora Volvo 142E
## 20.343151 22.480940 18.205363 22.427495
📘 Model liniowy z 2 zmiennymi objaśniającymi
Zmienna zależna: spalanie, dwie zmienne niezależne: waga samochodu i przespieszenie
##
## Call:
## lm(formula = mpg ~ wt + qsec, data = mtcars)
##
## Coefficients:
## (Intercept) wt qsec
## 19.7462 -5.0480 0.9292
##
## Call:
## lm(formula = mpg ~ wt + qsec, data = mtcars)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.3962 -2.1431 -0.2129 1.4915 5.7486
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 19.7462 5.2521 3.760 0.000765 ***
## wt -5.0480 0.4840 -10.430 2.52e-11 ***
## qsec 0.9292 0.2650 3.506 0.001500 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.596 on 29 degrees of freedom
## Multiple R-squared: 0.8264, Adjusted R-squared: 0.8144
## F-statistic: 69.03 on 2 and 29 DF, p-value: 9.395e-12
📗 08. Weryfikacja hipotez i pakiet dplyr
📘 Weryfikacja hipotez statystycznych
Test dla wartości średniej w populacji
# Zbadano jak dużo studenci UE wydali w listopadzie 2022 roku na pieczywo.
# Do badania wylosowano próbę składającą się z 16 osób.
# Na poziomie istotności alfa=0,05 zweryfikować hipotezę,
# że rzeczywista średnia kwota wydatków studentów UE w listopadzie 2022 na pieczywo była:
# a) równa 40zł,
# b) mniejsza niż 40 zł,
# c) większa niż 40 zł.
#Wprowadzenie danych.
wydatki=c(70,32,100,65,34,47,23,80,47,65,34,63,72,33,63,38)
# Ad a)
# H0: mi=40
# H1: mi=/=40
# 2-stronny obszar krytyczny.
wsr=mean(wydatki)
mi0=40
n=length(wydatki)
s=sd(wydatki)
T=(wsr-mi0)/s*sqrt(n)
T
## [1] 2.650558
alpha=0.05
# Wyznaczenie obszaru krytycznego
t.alpha.l=qt(alpha/2,n-1,lower.tail = T)
t.alpha.p=qt(alpha/2,n-1,lower.tail = F)
# Obszar, w którym jeżeli znajdzie się wartość statystyki testowej, to nie ma podstaw do odrzucenia H0.
c(t.alpha.l,t.alpha.p)
## [1] -2.13145 2.13145
# Wartość statystyki testowej należy do obszaru krytycznego.
# Odrzucamy H0 na rzecz H1.
# Można twierdzić, że rzeczywista średnia kwota wydatków na pieczywo studentów UE
# w listopadzie 2022 była różna od 40 zł.
# Testowanie za pomocą wbudowanej funkcji.
t.test(wydatki,mu=40)
##
## One Sample t-test
##
## data: wydatki
## t = 2.6506, df = 15, p-value = 0.01817
## alternative hypothesis: true mean is not equal to 40
## 95 percent confidence interval:
## 42.76636 65.48364
## sample estimates:
## mean of x
## 54.125
# p-wartość jest mniejsza od poziomu istotności alfa.
# Odrzucamy H0 na rzecz H1.
# Można twierdzić, że rzeczywista średnia kwota wydatków na pieczywo studentów UE
# w listopadzie 2022 była różna od 40 zł.
#"Ręczne wyznaczenie p-wartości"
1-pt(T,n-1)+pt(-T,n-1)
## [1] 0.0181711
##
## One Sample t-test
##
## data: wydatki
## t = 2.6506, df = 15, p-value = 0.009086
## alternative hypothesis: true mean is greater than 40
## 95 percent confidence interval:
## 44.78288 Inf
## sample estimates:
## mean of x
## 54.125
# p-wartość jest mniejsza od alfa=0.05.
# Odrzucamy H0 na rzecz H1.
# Można twierdzić, że średnia kwota wydatków na pieczywo studentów na UE w listopadzie 2022 była większa od 40 zł.
# Ad c)
# H0: mi=40
# H1: mi<40
t.test(wydatki,mu=40,alternative = "l")
##
## One Sample t-test
##
## data: wydatki
## t = 2.6506, df = 15, p-value = 0.9909
## alternative hypothesis: true mean is less than 40
## 95 percent confidence interval:
## -Inf 63.46712
## sample estimates:
## mean of x
## 54.125
Test normalności rozkładu Shapiro-Wilka
# H0: zmienna wydatki ma rozkład normalny
# H1: zmienna wydatki nie ma rozkładu normalnego
shapiro.test(wydatki)
##
## Shapiro-Wilk normality test
##
## data: wydatki
## W = 0.93908, p-value = 0.3378
# Brak podstaw do odrzucenia H0 (hipotezy zerowej, głoszącej że zmienna wydatki ma rozkład normalny).
# Wyświetlenie p-wartości.
shapiro.test(wydatki)$p.value
## [1] 0.3378433
Testy dla równości dwóch średnich
Test dla równości średnich dla prób niezależnych
# install.packages("foreign")
library(foreign)
# Import danych zapisanych w pliku programu SPSS ze strony stat.ue.katowice.pl
wzrost<-read.spss("http://stat.ue.katowice.pl/dane1/heights.sav")
wzrost
## $Husband
## [1] 186 180 160 186 163 172 192 170 174 191 182 178 181 168 162 188 168 183 188
## [20] 166 180 176 185 169 182 162 169 176 180 157 170 186 180 188 153 179 175 165
## [39] 156 185 172 166 179 181 176 170 165 183 162 192 185 163 185 170 176 176 160
## [58] 167 157 180 172 184 185 165 181 170 161 188 181 156 161 152 179 170 170 165
## [77] 165 169 171 192 176 168 169 184 171 161 185 184 179 184 175 173 164 181 187
## [96] 181 NA
##
## $Wife
## [1] 175 168 154 166 162 152 179 163 172 170 170 147 165 162 154 166 167 174 173
## [20] 164 163 163 171 161 167 160 165 167 175 157 172 181 166 181 148 169 170 157
## [39] 162 174 168 162 159 155 171 159 164 175 156 180 167 157 167 157 168 167 145
## [58] 156 153 162 156 174 160 152 175 169 149 176 165 143 158 141 160 149 160 148
## [77] 154 171 165 175 161 162 162 176 160 158 175 174 168 177 158 161 146 168 178
## [96] 170 NA
##
## attr(,"label.table")
## attr(,"label.table")$Husband
## NULL
##
## attr(,"label.table")$Wife
## NULL
##
## attr(,"codepage")
## [1] 65001
## [1] "list"
attach(wzrost)
# Badano wzrost kobiet(żon) i mężczyzn(mężów).
# Należy zweryfikować hipotezę, że przeciętny wzrost mężów jest wyższy
# niż przeciętny wzrost w grupie żon. Przyjąć poziom istotności 0,05.
# H0: mi_M=mi_K
# H1: mi_M>mi_K
t.test(Husband,Wife,alternative = "g")
##
## Welch Two Sample t-test
##
## data: Husband and Wife
## t = 7.5616, df = 188.57, p-value = 8.467e-13
## alternative hypothesis: true difference in means is greater than 0
## 95 percent confidence interval:
## 8.147699 Inf
## sample estimates:
## mean of x mean of y
## 174.3229 163.8958
Testy dla równości dwóch średnich dla prób zależnych
# U kilku pacjentów badano rozkurczowe ciśnienie. Prawidłowe normy to: 80-84.
# Badane osoby mają wysokie ciśnienie i zgłosili się do badań nad nowym lekiem.
# Zmienna przed: ciśnienie rozkurczowe przed zażyciem leku.
# Zmienna po: ciśnienie rozkurczowe po tygodniowym zażywaniu leku.
# Na poziomie istotności alfa=0,05 zweryfikować hipotezę, że lek powoduje spadek ciśnienia.
przed <-c(85,90,86,92,88,86,91,89)
po <-c(86,86,88,82,88,82,84,85)
t.test(po,przed,paired = T,alternative="l")
##
## Paired t-test
##
## data: po and przed
## t = -2.2437, df = 7, p-value = 0.02988
## alternative hypothesis: true mean difference is less than 0
## 95 percent confidence interval:
## -Inf -0.5056623
## sample estimates:
## mean difference
## -3.25
# Odrzucamy hipotezę zerową na rzecz hipotezy alternatywnej.
# Można twierdzić, że średnia wysokość ciśnienia rozkurczowego
# po tygodniowym stosowaniu leku była mniejsza niż przed stosowaniem leku.
# Inny zapis danych wejściowych.
badanie<- data.frame(
grupa = rep(c("przed", "po"), each = 8),
cisnienie = c(przed, po))
badanie
## grupa cisnienie
## 1 przed 85
## 2 przed 90
## 3 przed 86
## 4 przed 92
## 5 przed 88
## 6 przed 86
## 7 przed 91
## 8 przed 89
## 9 po 86
## 10 po 86
## 11 po 88
## 12 po 82
## 13 po 88
## 14 po 82
## 15 po 84
## 16 po 85
attach(badanie)
# Mając tak wyglądający zbiór danych, testowanie można przeprowadzić za pomocą kodu:
t.test(cisnienie~grupa,paired=T,alternative="l")
##
## Paired t-test
##
## data: cisnienie by grupa
## t = -2.2437, df = 7, p-value = 0.02988
## alternative hypothesis: true mean difference is less than 0
## 95 percent confidence interval:
## -Inf -0.5056623
## sample estimates:
## mean difference
## -3.25
Test dla równości dwóch wariancji
##
## F test to compare two variances
##
## data: Wife and Husband
## F = 0.84, num df = 95, denom df = 95, p-value = 0.8015
## alternative hypothesis: true ratio of variances is greater than 1
## 95 percent confidence interval:
## 0.5983559 Inf
## sample estimates:
## ratio of variances
## 0.8399965
Test niezależności chi-kwadrat
# Wprowadzenie danych.
muzyka <- matrix(c(67, 57, 68,34, 59, 77),ncol=3,byrow=T)
dimnames(muzyka) <- list(c("K", "M"),c("Pop","R$B", "Rock"))
muzyka
## Pop R$B Rock
## K 67 57 68
## M 34 59 77
# H0: zmienne są niezależne (płeć i rodzaj preferowanej muzyki są niezależne)
# H1: zmienne są zależne
chisq.test(muzyka)
##
## Pearson's Chi-squared test
##
## data: muzyka
## X-squared = 10.075, df = 2, p-value = 0.006488
📘 Pakiet dplyr
##
## Dołączanie pakietu: 'dplyr'
## Następujące obiekty zostały zakryte z 'package:stats':
##
## filter, lag
## Następujące obiekty zostały zakryte z 'package:base':
##
## intersect, setdiff, setequal, union
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
Wyświetlanie informacji o danych
## 'data.frame': 150 obs. of 5 variables:
## $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
## Rows: 150
## Columns: 5
## $ Sepal.Length <dbl> 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.4, 4.…
## $ Sepal.Width <dbl> 3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.…
## $ Petal.Length <dbl> 1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1.5, 1.5, 1.…
## $ Petal.Width <dbl> 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.…
## $ Species <fct> setosa, setosa, setosa, setosa, setosa, setosa, setosa, s…
Sortowanie danych
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 4.3 3.0 1.1 0.1 setosa
## 2 4.4 2.9 1.4 0.2 setosa
## 3 4.4 3.0 1.3 0.2 setosa
## 4 4.4 3.2 1.3 0.2 setosa
## 5 4.5 2.3 1.3 0.3 setosa
## 6 4.6 3.1 1.5 0.2 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 4.6 3.6 1.0 0.2 setosa
## 9 4.6 3.2 1.4 0.2 setosa
## 10 4.7 3.2 1.3 0.2 setosa
## 11 4.7 3.2 1.6 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.8 3.4 1.9 0.2 setosa
## 15 4.8 3.1 1.6 0.2 setosa
## 16 4.8 3.0 1.4 0.3 setosa
## 17 4.9 3.0 1.4 0.2 setosa
## 18 4.9 3.1 1.5 0.1 setosa
## 19 4.9 3.1 1.5 0.2 setosa
## 20 4.9 3.6 1.4 0.1 setosa
## 21 4.9 2.4 3.3 1.0 versicolor
## 22 4.9 2.5 4.5 1.7 virginica
## 23 5.0 3.6 1.4 0.2 setosa
## 24 5.0 3.4 1.5 0.2 setosa
## 25 5.0 3.0 1.6 0.2 setosa
## 26 5.0 3.4 1.6 0.4 setosa
## 27 5.0 3.2 1.2 0.2 setosa
## 28 5.0 3.5 1.3 0.3 setosa
## 29 5.0 3.5 1.6 0.6 setosa
## 30 5.0 3.3 1.4 0.2 setosa
## 31 5.0 2.0 3.5 1.0 versicolor
## 32 5.0 2.3 3.3 1.0 versicolor
## 33 5.1 3.5 1.4 0.2 setosa
## 34 5.1 3.5 1.4 0.3 setosa
## 35 5.1 3.8 1.5 0.3 setosa
## 36 5.1 3.7 1.5 0.4 setosa
## 37 5.1 3.3 1.7 0.5 setosa
## 38 5.1 3.4 1.5 0.2 setosa
## 39 5.1 3.8 1.9 0.4 setosa
## 40 5.1 3.8 1.6 0.2 setosa
## 41 5.1 2.5 3.0 1.1 versicolor
## 42 5.2 3.5 1.5 0.2 setosa
## 43 5.2 3.4 1.4 0.2 setosa
## 44 5.2 4.1 1.5 0.1 setosa
## 45 5.2 2.7 3.9 1.4 versicolor
## 46 5.3 3.7 1.5 0.2 setosa
## 47 5.4 3.9 1.7 0.4 setosa
## 48 5.4 3.7 1.5 0.2 setosa
## 49 5.4 3.9 1.3 0.4 setosa
## 50 5.4 3.4 1.7 0.2 setosa
## 51 5.4 3.4 1.5 0.4 setosa
## 52 5.4 3.0 4.5 1.5 versicolor
## 53 5.5 4.2 1.4 0.2 setosa
## 54 5.5 3.5 1.3 0.2 setosa
## 55 5.5 2.3 4.0 1.3 versicolor
## 56 5.5 2.4 3.8 1.1 versicolor
## 57 5.5 2.4 3.7 1.0 versicolor
## 58 5.5 2.5 4.0 1.3 versicolor
## 59 5.5 2.6 4.4 1.2 versicolor
## 60 5.6 2.9 3.6 1.3 versicolor
## 61 5.6 3.0 4.5 1.5 versicolor
## 62 5.6 2.5 3.9 1.1 versicolor
## 63 5.6 3.0 4.1 1.3 versicolor
## 64 5.6 2.7 4.2 1.3 versicolor
## 65 5.6 2.8 4.9 2.0 virginica
## 66 5.7 4.4 1.5 0.4 setosa
## 67 5.7 3.8 1.7 0.3 setosa
## 68 5.7 2.8 4.5 1.3 versicolor
## 69 5.7 2.6 3.5 1.0 versicolor
## 70 5.7 3.0 4.2 1.2 versicolor
## 71 5.7 2.9 4.2 1.3 versicolor
## 72 5.7 2.8 4.1 1.3 versicolor
## 73 5.7 2.5 5.0 2.0 virginica
## 74 5.8 4.0 1.2 0.2 setosa
## 75 5.8 2.7 4.1 1.0 versicolor
## 76 5.8 2.7 3.9 1.2 versicolor
## 77 5.8 2.6 4.0 1.2 versicolor
## 78 5.8 2.7 5.1 1.9 virginica
## 79 5.8 2.8 5.1 2.4 virginica
## 80 5.8 2.7 5.1 1.9 virginica
## 81 5.9 3.0 4.2 1.5 versicolor
## 82 5.9 3.2 4.8 1.8 versicolor
## 83 5.9 3.0 5.1 1.8 virginica
## 84 6.0 2.2 4.0 1.0 versicolor
## 85 6.0 2.9 4.5 1.5 versicolor
## 86 6.0 2.7 5.1 1.6 versicolor
## 87 6.0 3.4 4.5 1.6 versicolor
## 88 6.0 2.2 5.0 1.5 virginica
## 89 6.0 3.0 4.8 1.8 virginica
## 90 6.1 2.9 4.7 1.4 versicolor
## 91 6.1 2.8 4.0 1.3 versicolor
## 92 6.1 2.8 4.7 1.2 versicolor
## 93 6.1 3.0 4.6 1.4 versicolor
## 94 6.1 3.0 4.9 1.8 virginica
## 95 6.1 2.6 5.6 1.4 virginica
## 96 6.2 2.2 4.5 1.5 versicolor
## 97 6.2 2.9 4.3 1.3 versicolor
## 98 6.2 2.8 4.8 1.8 virginica
## 99 6.2 3.4 5.4 2.3 virginica
## 100 6.3 3.3 4.7 1.6 versicolor
## 101 6.3 2.5 4.9 1.5 versicolor
## 102 6.3 2.3 4.4 1.3 versicolor
## 103 6.3 3.3 6.0 2.5 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.3 2.7 4.9 1.8 virginica
## 106 6.3 2.8 5.1 1.5 virginica
## 107 6.3 3.4 5.6 2.4 virginica
## 108 6.3 2.5 5.0 1.9 virginica
## 109 6.4 3.2 4.5 1.5 versicolor
## 110 6.4 2.9 4.3 1.3 versicolor
## 111 6.4 2.7 5.3 1.9 virginica
## 112 6.4 3.2 5.3 2.3 virginica
## 113 6.4 2.8 5.6 2.1 virginica
## 114 6.4 2.8 5.6 2.2 virginica
## 115 6.4 3.1 5.5 1.8 virginica
## 116 6.5 2.8 4.6 1.5 versicolor
## 117 6.5 3.0 5.8 2.2 virginica
## 118 6.5 3.2 5.1 2.0 virginica
## 119 6.5 3.0 5.5 1.8 virginica
## 120 6.5 3.0 5.2 2.0 virginica
## 121 6.6 2.9 4.6 1.3 versicolor
## 122 6.6 3.0 4.4 1.4 versicolor
## 123 6.7 3.1 4.4 1.4 versicolor
## 124 6.7 3.0 5.0 1.7 versicolor
## 125 6.7 3.1 4.7 1.5 versicolor
## 126 6.7 2.5 5.8 1.8 virginica
## 127 6.7 3.3 5.7 2.1 virginica
## 128 6.7 3.1 5.6 2.4 virginica
## 129 6.7 3.3 5.7 2.5 virginica
## 130 6.7 3.0 5.2 2.3 virginica
## 131 6.8 2.8 4.8 1.4 versicolor
## 132 6.8 3.0 5.5 2.1 virginica
## 133 6.8 3.2 5.9 2.3 virginica
## 134 6.9 3.1 4.9 1.5 versicolor
## 135 6.9 3.2 5.7 2.3 virginica
## 136 6.9 3.1 5.4 2.1 virginica
## 137 6.9 3.1 5.1 2.3 virginica
## 138 7.0 3.2 4.7 1.4 versicolor
## 139 7.1 3.0 5.9 2.1 virginica
## 140 7.2 3.6 6.1 2.5 virginica
## 141 7.2 3.2 6.0 1.8 virginica
## 142 7.2 3.0 5.8 1.6 virginica
## 143 7.3 2.9 6.3 1.8 virginica
## 144 7.4 2.8 6.1 1.9 virginica
## 145 7.6 3.0 6.6 2.1 virginica
## 146 7.7 3.8 6.7 2.2 virginica
## 147 7.7 2.6 6.9 2.3 virginica
## 148 7.7 2.8 6.7 2.0 virginica
## 149 7.7 3.0 6.1 2.3 virginica
## 150 7.9 3.8 6.4 2.0 virginica
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 4.9 2.5 4.5 1.7 virginica
## 2 5.6 2.8 4.9 2.0 virginica
## 3 5.7 2.5 5.0 2.0 virginica
## 4 5.8 2.7 5.1 1.9 virginica
## 5 5.8 2.8 5.1 2.4 virginica
## 6 5.8 2.7 5.1 1.9 virginica
## 7 5.9 3.0 5.1 1.8 virginica
## 8 6.0 2.2 5.0 1.5 virginica
## 9 6.0 3.0 4.8 1.8 virginica
## 10 6.1 3.0 4.9 1.8 virginica
## 11 6.1 2.6 5.6 1.4 virginica
## 12 6.2 2.8 4.8 1.8 virginica
## 13 6.2 3.4 5.4 2.3 virginica
## 14 6.3 3.3 6.0 2.5 virginica
## 15 6.3 2.9 5.6 1.8 virginica
## 16 6.3 2.7 4.9 1.8 virginica
## 17 6.3 2.8 5.1 1.5 virginica
## 18 6.3 3.4 5.6 2.4 virginica
## 19 6.3 2.5 5.0 1.9 virginica
## 20 6.4 2.7 5.3 1.9 virginica
## 21 6.4 3.2 5.3 2.3 virginica
## 22 6.4 2.8 5.6 2.1 virginica
## 23 6.4 2.8 5.6 2.2 virginica
## 24 6.4 3.1 5.5 1.8 virginica
## 25 6.5 3.0 5.8 2.2 virginica
## 26 6.5 3.2 5.1 2.0 virginica
## 27 6.5 3.0 5.5 1.8 virginica
## 28 6.5 3.0 5.2 2.0 virginica
## 29 6.7 2.5 5.8 1.8 virginica
## 30 6.7 3.3 5.7 2.1 virginica
## 31 6.7 3.1 5.6 2.4 virginica
## 32 6.7 3.3 5.7 2.5 virginica
## 33 6.7 3.0 5.2 2.3 virginica
## 34 6.8 3.0 5.5 2.1 virginica
## 35 6.8 3.2 5.9 2.3 virginica
## 36 6.9 3.2 5.7 2.3 virginica
## 37 6.9 3.1 5.4 2.1 virginica
## 38 6.9 3.1 5.1 2.3 virginica
## 39 7.1 3.0 5.9 2.1 virginica
## 40 7.2 3.6 6.1 2.5 virginica
## 41 7.2 3.2 6.0 1.8 virginica
## 42 7.2 3.0 5.8 1.6 virginica
## 43 7.3 2.9 6.3 1.8 virginica
## 44 7.4 2.8 6.1 1.9 virginica
## 45 7.6 3.0 6.6 2.1 virginica
## 46 7.7 3.8 6.7 2.2 virginica
## 47 7.7 2.6 6.9 2.3 virginica
## 48 7.7 2.8 6.7 2.0 virginica
## 49 7.7 3.0 6.1 2.3 virginica
## 50 7.9 3.8 6.4 2.0 virginica
## 51 4.9 2.4 3.3 1.0 versicolor
## 52 5.0 2.0 3.5 1.0 versicolor
## 53 5.0 2.3 3.3 1.0 versicolor
## 54 5.1 2.5 3.0 1.1 versicolor
## 55 5.2 2.7 3.9 1.4 versicolor
## 56 5.4 3.0 4.5 1.5 versicolor
## 57 5.5 2.3 4.0 1.3 versicolor
## 58 5.5 2.4 3.8 1.1 versicolor
## 59 5.5 2.4 3.7 1.0 versicolor
## 60 5.5 2.5 4.0 1.3 versicolor
## 61 5.5 2.6 4.4 1.2 versicolor
## 62 5.6 2.9 3.6 1.3 versicolor
## 63 5.6 3.0 4.5 1.5 versicolor
## 64 5.6 2.5 3.9 1.1 versicolor
## 65 5.6 3.0 4.1 1.3 versicolor
## 66 5.6 2.7 4.2 1.3 versicolor
## 67 5.7 2.8 4.5 1.3 versicolor
## 68 5.7 2.6 3.5 1.0 versicolor
## 69 5.7 3.0 4.2 1.2 versicolor
## 70 5.7 2.9 4.2 1.3 versicolor
## 71 5.7 2.8 4.1 1.3 versicolor
## 72 5.8 2.7 4.1 1.0 versicolor
## 73 5.8 2.7 3.9 1.2 versicolor
## 74 5.8 2.6 4.0 1.2 versicolor
## 75 5.9 3.0 4.2 1.5 versicolor
## 76 5.9 3.2 4.8 1.8 versicolor
## 77 6.0 2.2 4.0 1.0 versicolor
## 78 6.0 2.9 4.5 1.5 versicolor
## 79 6.0 2.7 5.1 1.6 versicolor
## 80 6.0 3.4 4.5 1.6 versicolor
## 81 6.1 2.9 4.7 1.4 versicolor
## 82 6.1 2.8 4.0 1.3 versicolor
## 83 6.1 2.8 4.7 1.2 versicolor
## 84 6.1 3.0 4.6 1.4 versicolor
## 85 6.2 2.2 4.5 1.5 versicolor
## 86 6.2 2.9 4.3 1.3 versicolor
## 87 6.3 3.3 4.7 1.6 versicolor
## 88 6.3 2.5 4.9 1.5 versicolor
## 89 6.3 2.3 4.4 1.3 versicolor
## 90 6.4 3.2 4.5 1.5 versicolor
## 91 6.4 2.9 4.3 1.3 versicolor
## 92 6.5 2.8 4.6 1.5 versicolor
## 93 6.6 2.9 4.6 1.3 versicolor
## 94 6.6 3.0 4.4 1.4 versicolor
## 95 6.7 3.1 4.4 1.4 versicolor
## 96 6.7 3.0 5.0 1.7 versicolor
## 97 6.7 3.1 4.7 1.5 versicolor
## 98 6.8 2.8 4.8 1.4 versicolor
## 99 6.9 3.1 4.9 1.5 versicolor
## 100 7.0 3.2 4.7 1.4 versicolor
## 101 4.3 3.0 1.1 0.1 setosa
## 102 4.4 2.9 1.4 0.2 setosa
## 103 4.4 3.0 1.3 0.2 setosa
## 104 4.4 3.2 1.3 0.2 setosa
## 105 4.5 2.3 1.3 0.3 setosa
## 106 4.6 3.1 1.5 0.2 setosa
## 107 4.6 3.4 1.4 0.3 setosa
## 108 4.6 3.6 1.0 0.2 setosa
## 109 4.6 3.2 1.4 0.2 setosa
## 110 4.7 3.2 1.3 0.2 setosa
## 111 4.7 3.2 1.6 0.2 setosa
## 112 4.8 3.4 1.6 0.2 setosa
## 113 4.8 3.0 1.4 0.1 setosa
## 114 4.8 3.4 1.9 0.2 setosa
## 115 4.8 3.1 1.6 0.2 setosa
## 116 4.8 3.0 1.4 0.3 setosa
## 117 4.9 3.0 1.4 0.2 setosa
## 118 4.9 3.1 1.5 0.1 setosa
## 119 4.9 3.1 1.5 0.2 setosa
## 120 4.9 3.6 1.4 0.1 setosa
## 121 5.0 3.6 1.4 0.2 setosa
## 122 5.0 3.4 1.5 0.2 setosa
## 123 5.0 3.0 1.6 0.2 setosa
## 124 5.0 3.4 1.6 0.4 setosa
## 125 5.0 3.2 1.2 0.2 setosa
## 126 5.0 3.5 1.3 0.3 setosa
## 127 5.0 3.5 1.6 0.6 setosa
## 128 5.0 3.3 1.4 0.2 setosa
## 129 5.1 3.5 1.4 0.2 setosa
## 130 5.1 3.5 1.4 0.3 setosa
## 131 5.1 3.8 1.5 0.3 setosa
## 132 5.1 3.7 1.5 0.4 setosa
## 133 5.1 3.3 1.7 0.5 setosa
## 134 5.1 3.4 1.5 0.2 setosa
## 135 5.1 3.8 1.9 0.4 setosa
## 136 5.1 3.8 1.6 0.2 setosa
## 137 5.2 3.5 1.5 0.2 setosa
## 138 5.2 3.4 1.4 0.2 setosa
## 139 5.2 4.1 1.5 0.1 setosa
## 140 5.3 3.7 1.5 0.2 setosa
## 141 5.4 3.9 1.7 0.4 setosa
## 142 5.4 3.7 1.5 0.2 setosa
## 143 5.4 3.9 1.3 0.4 setosa
## 144 5.4 3.4 1.7 0.2 setosa
## 145 5.4 3.4 1.5 0.4 setosa
## 146 5.5 4.2 1.4 0.2 setosa
## 147 5.5 3.5 1.3 0.2 setosa
## 148 5.7 4.4 1.5 0.4 setosa
## 149 5.7 3.8 1.7 0.3 setosa
## 150 5.8 4.0 1.2 0.2 setosa
Filtrowanie danych
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 5.4 3.9 1.7 0.4 setosa
## 3 5.4 3.7 1.5 0.2 setosa
## 4 5.8 4.0 1.2 0.2 setosa
## 5 5.7 4.4 1.5 0.4 setosa
## 6 5.4 3.9 1.3 0.4 setosa
## 7 5.1 3.5 1.4 0.3 setosa
## 8 5.7 3.8 1.7 0.3 setosa
## 9 5.1 3.8 1.5 0.3 setosa
## 10 5.4 3.4 1.7 0.2 setosa
## 11 5.1 3.7 1.5 0.4 setosa
## 12 5.1 3.3 1.7 0.5 setosa
## 13 5.2 3.5 1.5 0.2 setosa
## 14 5.2 3.4 1.4 0.2 setosa
## 15 5.4 3.4 1.5 0.4 setosa
## 16 5.2 4.1 1.5 0.1 setosa
## 17 5.5 4.2 1.4 0.2 setosa
## 18 5.5 3.5 1.3 0.2 setosa
## 19 5.1 3.4 1.5 0.2 setosa
## 20 5.1 3.8 1.9 0.4 setosa
## 21 5.1 3.8 1.6 0.2 setosa
## 22 5.3 3.7 1.5 0.2 setosa
## 23 7.0 3.2 4.7 1.4 versicolor
## 24 6.4 3.2 4.5 1.5 versicolor
## 25 6.9 3.1 4.9 1.5 versicolor
## 26 5.5 2.3 4.0 1.3 versicolor
## 27 6.5 2.8 4.6 1.5 versicolor
## 28 5.7 2.8 4.5 1.3 versicolor
## 29 6.3 3.3 4.7 1.6 versicolor
## 30 6.6 2.9 4.6 1.3 versicolor
## 31 5.2 2.7 3.9 1.4 versicolor
## 32 5.9 3.0 4.2 1.5 versicolor
## 33 6.0 2.2 4.0 1.0 versicolor
## 34 6.1 2.9 4.7 1.4 versicolor
## 35 5.6 2.9 3.6 1.3 versicolor
## 36 6.7 3.1 4.4 1.4 versicolor
## 37 5.6 3.0 4.5 1.5 versicolor
## 38 5.8 2.7 4.1 1.0 versicolor
## 39 6.2 2.2 4.5 1.5 versicolor
## 40 5.6 2.5 3.9 1.1 versicolor
## 41 5.9 3.2 4.8 1.8 versicolor
## 42 6.1 2.8 4.0 1.3 versicolor
## 43 6.3 2.5 4.9 1.5 versicolor
## 44 6.1 2.8 4.7 1.2 versicolor
## 45 6.4 2.9 4.3 1.3 versicolor
## 46 6.6 3.0 4.4 1.4 versicolor
## 47 6.8 2.8 4.8 1.4 versicolor
## 48 6.7 3.0 5.0 1.7 versicolor
## 49 6.0 2.9 4.5 1.5 versicolor
## 50 5.7 2.6 3.5 1.0 versicolor
## 51 5.5 2.4 3.8 1.1 versicolor
## 52 5.5 2.4 3.7 1.0 versicolor
## 53 5.8 2.7 3.9 1.2 versicolor
## 54 6.0 2.7 5.1 1.6 versicolor
## 55 5.4 3.0 4.5 1.5 versicolor
## 56 6.0 3.4 4.5 1.6 versicolor
## 57 6.7 3.1 4.7 1.5 versicolor
## 58 6.3 2.3 4.4 1.3 versicolor
## 59 5.6 3.0 4.1 1.3 versicolor
## 60 5.5 2.5 4.0 1.3 versicolor
## 61 5.5 2.6 4.4 1.2 versicolor
## 62 6.1 3.0 4.6 1.4 versicolor
## 63 5.8 2.6 4.0 1.2 versicolor
## 64 5.6 2.7 4.2 1.3 versicolor
## 65 5.7 3.0 4.2 1.2 versicolor
## 66 5.7 2.9 4.2 1.3 versicolor
## 67 6.2 2.9 4.3 1.3 versicolor
## 68 5.1 2.5 3.0 1.1 versicolor
## 69 5.7 2.8 4.1 1.3 versicolor
## 70 6.3 3.3 6.0 2.5 virginica
## 71 5.8 2.7 5.1 1.9 virginica
## 72 7.1 3.0 5.9 2.1 virginica
## 73 6.3 2.9 5.6 1.8 virginica
## 74 6.5 3.0 5.8 2.2 virginica
## 75 7.6 3.0 6.6 2.1 virginica
## 76 7.3 2.9 6.3 1.8 virginica
## 77 6.7 2.5 5.8 1.8 virginica
## 78 7.2 3.6 6.1 2.5 virginica
## 79 6.5 3.2 5.1 2.0 virginica
## 80 6.4 2.7 5.3 1.9 virginica
## 81 6.8 3.0 5.5 2.1 virginica
## 82 5.7 2.5 5.0 2.0 virginica
## 83 5.8 2.8 5.1 2.4 virginica
## 84 6.4 3.2 5.3 2.3 virginica
## 85 6.5 3.0 5.5 1.8 virginica
## 86 7.7 3.8 6.7 2.2 virginica
## 87 7.7 2.6 6.9 2.3 virginica
## 88 6.0 2.2 5.0 1.5 virginica
## 89 6.9 3.2 5.7 2.3 virginica
## 90 5.6 2.8 4.9 2.0 virginica
## 91 7.7 2.8 6.7 2.0 virginica
## 92 6.3 2.7 4.9 1.8 virginica
## 93 6.7 3.3 5.7 2.1 virginica
## 94 7.2 3.2 6.0 1.8 virginica
## 95 6.2 2.8 4.8 1.8 virginica
## 96 6.1 3.0 4.9 1.8 virginica
## 97 6.4 2.8 5.6 2.1 virginica
## 98 7.2 3.0 5.8 1.6 virginica
## 99 7.4 2.8 6.1 1.9 virginica
## 100 7.9 3.8 6.4 2.0 virginica
## 101 6.4 2.8 5.6 2.2 virginica
## 102 6.3 2.8 5.1 1.5 virginica
## 103 6.1 2.6 5.6 1.4 virginica
## 104 7.7 3.0 6.1 2.3 virginica
## 105 6.3 3.4 5.6 2.4 virginica
## 106 6.4 3.1 5.5 1.8 virginica
## 107 6.0 3.0 4.8 1.8 virginica
## 108 6.9 3.1 5.4 2.1 virginica
## 109 6.7 3.1 5.6 2.4 virginica
## 110 6.9 3.1 5.1 2.3 virginica
## 111 5.8 2.7 5.1 1.9 virginica
## 112 6.8 3.2 5.9 2.3 virginica
## 113 6.7 3.3 5.7 2.5 virginica
## 114 6.7 3.0 5.2 2.3 virginica
## 115 6.3 2.5 5.0 1.9 virginica
## 116 6.5 3.0 5.2 2.0 virginica
## 117 6.2 3.4 5.4 2.3 virginica
## 118 5.9 3.0 5.1 1.8 virginica
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 5.4 3.9 1.7 0.4 setosa
## 3 5.4 3.7 1.5 0.2 setosa
## 4 5.8 4.0 1.2 0.2 setosa
## 5 5.7 4.4 1.5 0.4 setosa
## 6 5.4 3.9 1.3 0.4 setosa
## 7 5.1 3.5 1.4 0.3 setosa
## 8 5.7 3.8 1.7 0.3 setosa
## 9 5.1 3.8 1.5 0.3 setosa
## 10 5.4 3.4 1.7 0.2 setosa
## 11 5.1 3.7 1.5 0.4 setosa
## 12 5.1 3.3 1.7 0.5 setosa
## 13 5.2 3.5 1.5 0.2 setosa
## 14 5.2 3.4 1.4 0.2 setosa
## 15 5.4 3.4 1.5 0.4 setosa
## 16 5.2 4.1 1.5 0.1 setosa
## 17 5.5 4.2 1.4 0.2 setosa
## 18 5.5 3.5 1.3 0.2 setosa
## 19 5.1 3.4 1.5 0.2 setosa
## 20 5.1 3.8 1.9 0.4 setosa
## 21 5.1 3.8 1.6 0.2 setosa
## 22 5.3 3.7 1.5 0.2 setosa
Losowanie obserwacji ze zbioru
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 6.4 2.8 5.6 2.1 virginica
## 2 6.4 3.2 4.5 1.5 versicolor
## 3 6.0 2.9 4.5 1.5 versicolor
## 4 6.9 3.1 5.1 2.3 virginica
## 5 6.1 3.0 4.6 1.4 versicolor
## 6 4.3 3.0 1.1 0.1 setosa
## 7 5.0 2.0 3.5 1.0 versicolor
## 8 5.0 3.4 1.5 0.2 setosa
## [1] 7.5
Operator pipe (%>%)
## [1] 1.386294
## [1] 1.386294
# Wyselekcjonowanie ze zbioru danych iris: irysów, które są gatunku versicolor,
# a uzyskany zbiór należy posortować malejąco względem Petal.Width.
iris%>%filter(Species=="versicolor")%>%arrange(desc(Petal.Width))
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.9 3.2 4.8 1.8 versicolor
## 2 6.7 3.0 5.0 1.7 versicolor
## 3 6.3 3.3 4.7 1.6 versicolor
## 4 6.0 2.7 5.1 1.6 versicolor
## 5 6.0 3.4 4.5 1.6 versicolor
## 6 6.4 3.2 4.5 1.5 versicolor
## 7 6.9 3.1 4.9 1.5 versicolor
## 8 6.5 2.8 4.6 1.5 versicolor
## 9 5.9 3.0 4.2 1.5 versicolor
## 10 5.6 3.0 4.5 1.5 versicolor
## 11 6.2 2.2 4.5 1.5 versicolor
## 12 6.3 2.5 4.9 1.5 versicolor
## 13 6.0 2.9 4.5 1.5 versicolor
## 14 5.4 3.0 4.5 1.5 versicolor
## 15 6.7 3.1 4.7 1.5 versicolor
## 16 7.0 3.2 4.7 1.4 versicolor
## 17 5.2 2.7 3.9 1.4 versicolor
## 18 6.1 2.9 4.7 1.4 versicolor
## 19 6.7 3.1 4.4 1.4 versicolor
## 20 6.6 3.0 4.4 1.4 versicolor
## 21 6.8 2.8 4.8 1.4 versicolor
## 22 6.1 3.0 4.6 1.4 versicolor
## 23 5.5 2.3 4.0 1.3 versicolor
## 24 5.7 2.8 4.5 1.3 versicolor
## 25 6.6 2.9 4.6 1.3 versicolor
## 26 5.6 2.9 3.6 1.3 versicolor
## 27 6.1 2.8 4.0 1.3 versicolor
## 28 6.4 2.9 4.3 1.3 versicolor
## 29 6.3 2.3 4.4 1.3 versicolor
## 30 5.6 3.0 4.1 1.3 versicolor
## 31 5.5 2.5 4.0 1.3 versicolor
## 32 5.6 2.7 4.2 1.3 versicolor
## 33 5.7 2.9 4.2 1.3 versicolor
## 34 6.2 2.9 4.3 1.3 versicolor
## 35 5.7 2.8 4.1 1.3 versicolor
## 36 6.1 2.8 4.7 1.2 versicolor
## 37 5.8 2.7 3.9 1.2 versicolor
## 38 5.5 2.6 4.4 1.2 versicolor
## 39 5.8 2.6 4.0 1.2 versicolor
## 40 5.7 3.0 4.2 1.2 versicolor
## 41 5.6 2.5 3.9 1.1 versicolor
## 42 5.5 2.4 3.8 1.1 versicolor
## 43 5.1 2.5 3.0 1.1 versicolor
## 44 4.9 2.4 3.3 1.0 versicolor
## 45 5.0 2.0 3.5 1.0 versicolor
## 46 6.0 2.2 4.0 1.0 versicolor
## 47 5.8 2.7 4.1 1.0 versicolor
## 48 5.7 2.6 3.5 1.0 versicolor
## 49 5.5 2.4 3.7 1.0 versicolor
## 50 5.0 2.3 3.3 1.0 versicolor
📗 09. Pakiet ggplot2. Podstawy konstrukcji wykresów
📘 Załadowanie pakietu gplot2 i charakterystyka
zbioru mtcars
️✔️️ Dla konstrukcji wykresów w tej części wykorzystano dostępny w R
zbiór mtcars
.
Wyświetlenie początkowych rekordów zbioru mtcars
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
Podstawowa charakterystyka zmiennych
## mpg cyl disp hp
## Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0
## 1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5
## Median :19.20 Median :6.000 Median :196.3 Median :123.0
## Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7
## 3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0
## Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0
## drat wt qsec vs
## Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000
## 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000
## Median :3.695 Median :3.325 Median :17.71 Median :0.0000
## Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375
## 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000
## Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000
## am gear carb
## Min. :0.0000 Min. :3.000 Min. :1.000
## 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
## Median :0.0000 Median :4.000 Median :2.000
## Mean :0.4062 Mean :3.688 Mean :2.812
## 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
## Max. :1.0000 Max. :5.000 Max. :8.000
Zmiana typu trzech zmiennych na czynniki (factors)
Dane
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
Podsumowanie
## mpg cyl disp hp drat
## Min. :10.40 4:11 Min. : 71.1 Min. : 52.0 Min. :2.760
## 1st Qu.:15.43 6: 7 1st Qu.:120.8 1st Qu.: 96.5 1st Qu.:3.080
## Median :19.20 8:14 Median :196.3 Median :123.0 Median :3.695
## Mean :20.09 Mean :230.7 Mean :146.7 Mean :3.597
## 3rd Qu.:22.80 3rd Qu.:326.0 3rd Qu.:180.0 3rd Qu.:3.920
## Max. :33.90 Max. :472.0 Max. :335.0 Max. :4.930
## wt qsec vs am gear carb
## Min. :1.513 Min. :14.50 Min. :0.0000 0:19 3:15 Min. :1.000
## 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000 1:13 4:12 1st Qu.:2.000
## Median :3.325 Median :17.71 Median :0.0000 5: 5 Median :2.000
## Mean :3.217 Mean :17.85 Mean :0.4375 Mean :2.812
## 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000 3rd Qu.:4.000
## Max. :5.424 Max. :22.90 Max. :1.0000 Max. :8.000
Wyświetlenie początkowych rekordów zbioru danych po dokonanej zmianie
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
Podstawowa charakterystyka zmiennych po dokonanej zmianie
## mpg cyl disp hp drat
## Min. :10.40 4:11 Min. : 71.1 Min. : 52.0 Min. :2.760
## 1st Qu.:15.43 6: 7 1st Qu.:120.8 1st Qu.: 96.5 1st Qu.:3.080
## Median :19.20 8:14 Median :196.3 Median :123.0 Median :3.695
## Mean :20.09 Mean :230.7 Mean :146.7 Mean :3.597
## 3rd Qu.:22.80 3rd Qu.:326.0 3rd Qu.:180.0 3rd Qu.:3.920
## Max. :33.90 Max. :472.0 Max. :335.0 Max. :4.930
## wt qsec vs am gear carb
## Min. :1.513 Min. :14.50 Min. :0.0000 0:19 3:15 Min. :1.000
## 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000 1:13 4:12 1st Qu.:2.000
## Median :3.325 Median :17.71 Median :0.0000 5: 5 Median :2.000
## Mean :3.217 Mean :17.85 Mean :0.4375 Mean :2.812
## 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000 3rd Qu.:4.000
## Max. :5.424 Max. :22.90 Max. :1.0000 Max. :8.000
📘 Wykres rozrzutu
Argumenty: nazwa zbioru danych i zmienne na osie (lub jedną oś)
Dodanie etykiet opisu osi
Zmiana etykiety legendy
Wygodny zapis - to samo co powyżej
Umieszczenie legendy pod wykresem
Kształt może oznaczać liczbę biegów
Wielkość punktów to np. masa samochodu
📘 Histogram
Histogram jest wykreślany dla jednej zmiennej ilościowej, zmieniamy tylko ostatnią linię
Można dodać kolory (color- obramowanie, fill- wypełnienie)
📘 Wykresy słupkowe
📘 Wykres pudełkowy
📘 Wykres Wiolinowy
📘 Etykiety
📘 Regresja
Określenie postaci funkcji regresji
Rozbicie na grupy ze względu na liczbę cylindrów
📗 10. Pakiet patchwork
📘 Załadowanie pakietów i charakterystyka zbioru ‘mtcars’
️✔️️ Dla konstrukcji wykresów w tej części wykorzystano dostępny w R
zbiór mtcars
.
Wyświetlenie informacji o zbiorze mtcars
## mpg cyl disp hp drat
## Min. :10.40 4:11 Min. : 71.1 Min. : 52.0 Min. :2.760
## 1st Qu.:15.43 6: 7 1st Qu.:120.8 1st Qu.: 96.5 1st Qu.:3.080
## Median :19.20 8:14 Median :196.3 Median :123.0 Median :3.695
## Mean :20.09 Mean :230.7 Mean :146.7 Mean :3.597
## 3rd Qu.:22.80 3rd Qu.:326.0 3rd Qu.:180.0 3rd Qu.:3.920
## Max. :33.90 Max. :472.0 Max. :335.0 Max. :4.930
## wt qsec vs am gear carb
## Min. :1.513 Min. :14.50 Min. :0.0000 0:19 3:15 Min. :1.000
## 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000 1:13 4:12 1st Qu.:2.000
## Median :3.325 Median :17.71 Median :0.0000 5: 5 Median :2.000
## Mean :3.217 Mean :17.85 Mean :0.4375 Mean :2.812
## 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000 3rd Qu.:4.000
## Max. :5.424 Max. :22.90 Max. :1.0000 Max. :8.000
📘 Przygotowanie wykresów
📘 Obiekty graficzne, ich wyświetlanie i rozmieszczanie
Konstrukcja obiektów p1 i p2
📘 Pakiet patchwork - podstawowe zastosowania
Konstrukcja obiektów p3 i p4
Wyświetlenie obiektów p1 (u góry) oraz p2 i p3 (na dole)
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Wyświetlenie obiektów p1, p2, p3 i p4
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Wyświetlenie obiektów p1, p2, p3 i p4
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
📘 Pakiet patchwork - układ użytkownika
Wyświetlenie obiektów p1, p2, p3 i p4
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Wyświetlenie obiektów p1 i p2 wraz z dodanymi punktami na wykresach
Konstrukcja obiektu rys i wyświetlenie wykresów p3, p1 i p2
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Wyświetlenie wykresów p3, p1 i p2
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Wprowadzenie wolnego obszaru pomidzy wykresami (spacer)
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Wprowadzenie wolnego obszaru pomidzy wykresami (spacer)
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Wprowadzenie wolnych obszarów pomidzy wykresami (spacer)
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Zadanie liczby kolumn dla tablicy wykresów
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Zadanie szerokości kolumn dla tablicy wykresów
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Zadanie szerokości kolumn i wysokości dla tablicy wykresów
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Umieszczanie wykresów zgodnie z zadanym wzorcem - wstawienie wykresów
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
📘 Dodanie obszaru z tekstem
📘 Tabela z danymi obok wykresu
❕ Załadowanie dodatkowych bibliotek
##
## Dołączanie pakietu: 'gridExtra'
## Następujący obiekt został zakryty z 'package:dplyr':
##
## combine
📗 11. Pakiety ggplot2 i gapminder. Podstawy animacji
📘 Załadowanie pakietów i podstawowe informacje o zbiorze
gapminder
️✔️️Dla konstrukcji wykresów w tej części wykorzystan* zbiór
gapminder
z pakietu gapminder
Informacja o zbiorze gapminder
## country continent year lifeExp
## Afghanistan: 12 Africa :624 Min. :1952 Min. :23.60
## Albania : 12 Americas:300 1st Qu.:1966 1st Qu.:48.20
## Algeria : 12 Asia :396 Median :1980 Median :60.71
## Angola : 12 Europe :360 Mean :1980 Mean :59.47
## Argentina : 12 Oceania : 24 3rd Qu.:1993 3rd Qu.:70.85
## Australia : 12 Max. :2007 Max. :82.60
## (Other) :1632
## pop gdpPercap
## Min. :6.001e+04 Min. : 241.2
## 1st Qu.:2.794e+06 1st Qu.: 1202.1
## Median :7.024e+06 Median : 3531.8
## Mean :2.960e+07 Mean : 7215.3
## 3rd Qu.:1.959e+07 3rd Qu.: 9325.5
## Max. :1.319e+09 Max. :113523.1
##
Informacja o zbiorze w tabeli
##
## 1952 1957 1962 1967 1972 1977 1982 1987 1992 1997 2002 2007
## Africa 52 52 52 52 52 52 52 52 52 52 52 52
## Americas 25 25 25 25 25 25 25 25 25 25 25 25
## Asia 33 33 33 33 33 33 33 33 33 33 33 33
## Europe 30 30 30 30 30 30 30 30 30 30 30 30
## Oceania 2 2 2 2 2 2 2 2 2 2 2 2
📘 Wybrane wykresy dla danych ze zbioru ‘gapminder’
️️✔️ Wykresy przedstawiają jednocześnie dane z wielu różnych lat
️️✔️ Do konstrukcji wykresów w tej części wykorzystano dostępny w R
zbiór gapminder
Wykres słupkowy - dodanie etykiety legendy
Wykres słupkowy - usunięcie legendy
Wykres zapamiętany w obiekcie rys
Wybrane państwa - wykres liniowy
Wykres gęstości z dodatkowymi parametrami
Histogram
Histogram i gęstość
Histogram i gęstość - dodatkowe parametry
Gęstości dla poszczególnych kontynentów
Konstrukcja i wyświetlenie obiektu rys2
Wyświetlenie obiektu rys2
z reprezentacją graficzną
point
Wyświetlenie obiektu rys2
z reprezentacją graficzną
point
i kolorami dla kontynentów
📘 Animacje w ggplot2 - pakiet gganimation
Utworzenie obiektu p
Utworzenie obiektu p
Uruchomienie animacji z parametrami
Animacja - określenie różnych parametrów
p <- ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) +
geom_point(alpha = 0.7) +
theme(legend.position = 'none') +
facet_wrap(~continent) +
labs(title = 'Rok: {frame_time}', x = 'PKB na osobę', y = 'oczekiwana długość życia') +
transition_time(year)+
scale_colour_manual(values = country_colors) +
scale_size(range = c(2, 12)) +
scale_x_log10() +
facet_wrap(~continent) +
theme(legend.position = 'none') +
labs(title = 'Year: {frame_time}', x = 'GDP per capita', y = 'life expectancy') +
transition_time(year) +
ease_aes('linear')
p
📘 Zapisanie animacji w pliku gif i wyświetlenie w zewnętrznym oknie
makeplot <- function(){
datalist <- split(gapminder, gapminder$year)
lapply(datalist, function(data){
p <- ggplot(data, aes(gdpPercap, lifeExp, size = pop, color = continent)) +
scale_size("population", limits = range(gapminder$pop)) + geom_point() + ylim(20, 90) +
scale_x_log10(limits = range(gapminder$gdpPercap)) + ggtitle(data$year) + theme_classic()
print(p)
})
}
gif_file <- file.path(tempdir(), 'gapminder.gif')
save_gif(makeplot(), gif_file, 1280, 720, res = 144)
utils::browseURL(gif_file)
📗 12. Animacje dla rzeczywistych danych z BDL
Załadowanie pakietów i pobranie zmiennych z Banku Danych Lokalnych
❕ Załadowanie pakietów
️✔️ Dane są pobierane z Banku Danych Lolalnych
Wyświetlenie informacji o zmiennych z BDL
## # A tibble: 3 × 7
## id subjectId n1 n2 level measureUnitId measureUnitName
## <int> <chr> <chr> <chr> <int> <int> <chr>
## 1 510 P1626 ogółem sklepy 6 35 ob.
## 2 511 P1626 sektor prywatny sklepy 6 35 ob.
## 3 58964 P2323 sklepy <NA> 3 35 ob.
## # A tibble: 2 × 6
## id subjectId n1 level measureUnitId measureUnitName
## <int> <chr> <chr> <int> <int> <chr>
## 1 58964 P2323 sklepy 3 35 ob.
## 2 58965 P2323 stacje paliw 3 35 ob.
Pobranie danych z Banku Danych lokalnych - stacje paliw
## # A tibble: 16 × 8
## id name year val measureUnitId measureName attrId attributeDescription
## <chr> <chr> <chr> <int> <chr> <chr> <int> <chr>
## 1 0112… MAŁO… 2021 549 35 ob. 1 ""
## 2 0124… ŚLĄS… 2021 810 35 ob. 1 ""
## 3 0208… LUBU… 2021 283 35 ob. 1 ""
## 4 0230… WIEL… 2021 878 35 ob. 1 ""
## 5 0232… ZACH… 2021 429 35 ob. 1 ""
## 6 0302… DOLN… 2021 490 35 ob. 1 ""
## 7 0316… OPOL… 2021 185 35 ob. 1 ""
## 8 0404… KUJA… 2021 514 35 ob. 1 ""
## 9 0422… POMO… 2021 435 35 ob. 1 ""
## 10 0428… WARM… 2021 254 35 ob. 1 ""
## 11 0510… ŁÓDZ… 2021 695 35 ob. 1 ""
## 12 0526… ŚWIĘ… 2021 265 35 ob. 1 ""
## 13 0606… LUBE… 2021 485 35 ob. 1 ""
## 14 0618… PODK… 2021 448 35 ob. 1 ""
## 15 0620… PODL… 2021 239 35 ob. 1 ""
## 16 0714… MAZO… 2021 1169 35 ob. 1 ""
📘 Konstrukcja wykresów dla pobranych zmiennych
Wykres kołowy - liczba stacji paliw
Wykres rozrzutu - liczba sklepów i stacji paliw
Wykres liniowy - liczba sklepów
📘 Animacje dla danych z BDL
Przygotowanie animacji - sklepy i stacje paliw
dane=get_data_by_variable(c("72305","58964","58965"),unitLevel=2)
dane$year=as.numeric(dane$year)
dane=dane %>% filter(year >2003)
p <- ggplot(
dane,
aes(x = val_58964, y=val_58965, size = val_72305/1000000, colour = name)
) +
geom_point(show.legend = TRUE, alpha = 0.6) +
scale_color_viridis_d() +
scale_size(range = c(2, 10)) +
labs(x = "liczba sklepów", y = "liczba stacji paliw")+
labs(color="Województwo",size="Ludność w mln.")
p
Przygotowanie animacji - sklepy
Uruchomienie animacji
Przygotowanie animacji - stacje paliw
Uruchomienie animacji
Przygotowanie animacji - sklepy
Uruchomienie animacji
Przygotowanie animacji - sklepy
Przygotowanie animacji - sklepy i stacje paliw
Przygotowanie animacji - stacje paliw
📘 Liczba urodzeń i zgonów na 1000 mieszkańców
Pobranie danych z Banku Danych Lokalnych
Przygotowanie animacji - liczba urodzeń i zgonów na 1000 mieszkańców
p <- ggplot(
dane,
aes(x = val_63221/val_72305*1000, y=val_63215/val_72305*1000, size = val_72305/1000000, colour = name) ) +
geom_point(show.legend = TRUE, alpha = 0.6) +
scale_color_viridis_d() +
scale_size(range = c(2, 10)) +
labs(x = "Urodzenia żywe na 1000 mieszkańców", y = "Zgony na 1000 mieszkańców")+
labs(color="Województwo",size="Ludność w mln.")
p
Animacja
Animacja - inna forma uruchomienia
Prezentacja w oknach (facet_wrap) - liczba urodzeń i zgonów na 1000 mieszkańców
Animacja - efekt shadow_wake)
Animacja - efekt shadow_mark)
Przygotowanie animacji - boxplot
Animacja
Przygotowanie animacji - wykres rozrzutu
anim <- ggplot(dane, aes(x=val_63221/val_72305*1000, y=val_63215/val_72305*1000,colour=name)) +
geom_point() +
labs(title = "{closest_state}") +
transition_states(year, transition_length = 4, state_length = 1)+
labs(x = "Urodzenia żywe na 1000 ludności", y = "Zgony na 1000 ludności")+
labs(color="Województwo")
Przygotowanie animacji - wykres rozrzutu + dodatkowe parametry
📘 Mieszkania
Pobranie danych z BDL
Przygotowanie animacji
Animacja
r<-p + transition_time(year) + labs(title = "Rok: {format(frame_time,1,4)}")
animate(r, detail = 5,height = 6, width = 8, units = "in", res = 150, end_pause=6,duration=15)
## 📘 Ceny - woda zimna, węgiel kamienny i energia
Pobranie danych z BDL (cena 1 m3 wody zimnej)
Cena wody zimnej - przygotowanie animacji
Animacja
Animacja - dodanie parametrów animacji
Przygotowanie animacji
Animacja - dodanie parametrów animacji
Pobranie danych z BDL (cena 1 kWh energii elektrycznej)
Przygotowanie animacji
📘 Dochody na 1 mieszkańca w powiatach
Pobranie danych z BDL
## # A tibble: 18 × 7
## id subjectId n1 n2 level measureUnitId measureUnitName
## <int> <chr> <chr> <chr> <int> <int> <chr>
## 1 76973 P2627 gminy łącznie z m… ogół… 6 4 zł
## 2 76974 P2627 miasta na prawach… ogół… 6 4 zł
## 3 76975 P2627 gminy bez miast n… ogół… 6 4 zł
## 4 76976 P2627 gminy łącznie z m… doch… 6 4 zł
## 5 76977 P2627 miasta na prawach… doch… 6 4 zł
## 6 76978 P2627 gminy bez miast n… doch… 6 4 zł
## 7 76979 P2627 gminy łącznie z m… udzi… 6 4 zł
## 8 76980 P2627 miasta na prawach… udzi… 6 4 zł
## 9 76981 P2627 gminy bez miast n… udzi… 6 4 zł
## 10 76982 P2627 gminy łącznie z m… doch… 6 4 zł
## 11 76983 P2627 miasta na prawach… doch… 6 4 zł
## 12 76984 P2627 gminy bez miast n… doch… 6 4 zł
## 13 149128 P2627 gminy łącznie z m… doch… 6 4 zł
## 14 149129 P2627 miasta na prawach… doch… 6 4 zł
## 15 149130 P2627 gminy bez miast n… doch… 6 4 zł
## 16 149131 P2627 gminy łącznie z m… doch… 6 4 zł
## 17 149132 P2627 miasta na prawach… doch… 6 4 zł
## 18 149133 P2627 gminy bez miast n… doch… 6 4 zł
## # A tibble: 336 × 8
## id name year val measureUnitId measureName attrId attributeDescription
## <chr> <chr> <chr> <dbl> <chr> <chr> <int> <chr>
## 1 0112… MAŁO… 2002 2022 4 zł 1 ""
## 2 0112… MAŁO… 2003 2098 4 zł 1 ""
## 3 0112… MAŁO… 2004 2379 4 zł 1 ""
## 4 0112… MAŁO… 2005 2674 4 zł 1 ""
## 5 0112… MAŁO… 2006 3055. 4 zł 1 ""
## 6 0112… MAŁO… 2007 3607. 4 zł 1 ""
## 7 0112… MAŁO… 2008 3876. 4 zł 1 ""
## 8 0112… MAŁO… 2009 4122. 4 zł 1 ""
## 9 0112… MAŁO… 2010 4430. 4 zł 1 ""
## 10 0112… MAŁO… 2011 4412. 4 zł 1 ""
## # ℹ 326 more rows
Przygotowanie animacji
# 76974 P2627 miasta na prawach powiatu
# ogółem
dane=get_data_by_variable("76974",unitLevel=2)
p <- ggplot(
dane,
aes(year, val, group = name, color = factor(name))
) +
geom_line() +
scale_color_viridis_d() +
labs(x = "Rok", y = "Dochody na 1 mieszkańca miast na prawach powiatu w zł") +
labs(color="Województwo")+
theme(legend.position = "right")
p
📗 13. Interaktywny dashboard z pakietem shiny
📘 Pakiety i zbiór danych
❕ Załadowanie pakietów
## Warning: pakiet 'shinythemes' został zbudowany w wersji R 4.2.3
❕ ZZiór danych gapminder
## # A tibble: 6 × 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Afghanistan Asia 1952 28.8 8425333 779.
## 2 Afghanistan Asia 1957 30.3 9240934 821.
## 3 Afghanistan Asia 1962 32.0 10267083 853.
## 4 Afghanistan Asia 1967 34.0 11537966 836.
## 5 Afghanistan Asia 1972 36.1 13079460 740.
## 6 Afghanistan Asia 1977 38.4 14880372 786.
By możliwy był wybór przez użytkownika, która zmienna ma zostać przedstawiona na wykresie słupkowym dane należy przekształcić funkcja pivot_longer przeniesie wszystkie wartości trzech zmiennych do jednej kolumny a ich nazwy do drugiej. Liczba wierszy zwiększy się trzykrotnie. Niektóre kolumny zostaną przekształcone na factor ze względów estetycznych.
dane <- gapminder%>% pivot_longer(cols = c('lifeExp','pop','gdpPercap'),
names_to = "zmienna",
values_to = "wartość") %>%
mutate(zmienna=factor(zmienna,levels=c("lifeExp","pop","gdpPercap"),
labels = c("średnia długość życia","populacja","PKB per capita")))
Wartości kilku kolorów które zostaną użyte w wykresach
Pakiet shiny pozwala na tworzenie internatywnych aplikacji.
Składają się one z dwóch głownych elementów - interfejsu użytkownika i serwera.
Aplikację taką można uruchomić za pomocą Rstudio lub opublikować jako stronę internetową.
📘 Interfejs użytkowmika
W ramach elementu ui zdefiniowany zostanie interfejs użytkownika.
Ta część aplikacji definiuje jakie elementy wyśwpietlane są po uruchomieniu alplikacji oraz ich układ i wygląd.
ui <- fluidPage(
#wybór motywu
theme = shinytheme("superhero"),
#tytuł dashboardu
titlePanel("Interaktywny dashboard z pakietem shiny"),
#wewnątrz funkcji tabsetPanel zagnieżdżone są definiujące poszczególne karty funkcje tabPanel()
tabsetPanel(
##pierwsza karta
tabPanel("Gapminder - ogólne statystyki",
###panel boczny
sidebarLayout(
sidebarPanel(
####wybór daty - suwak
####pierwszy argument to nazwa elementu input
####można się do nich odnosić skryptach wykonywanych przez serwer
####tutaj na przykład użytkownik wybiera dla jakiego roku sporządzony będzie wykres
sliderInput("data_slupkowy",
#opis elemetu widoczny dla użytkownika
"Wybierz datę:",
#wartości minimalne i maksymalne suwaka
min = 1952,
max = 2007,
#wartość domyślna
value=2007,
#co ile można się przesunąć suwakiem
#zbiór gapminder zawiera obserwacje co pięć lat dlatego step=5
#należy unikać możliwości wybrania suwakiem wartości niewystępujących w danych
#jeżeli wartość ta ma być użyta do filtorwania
step=5,
sep=""),
####wybór zmiennej - lista rozwijana
selectInput("zmienna_slupkowy",
"Wybierz zmienną:",
#możliwe do wybrania wartości
choices = c("średnia długość życia","populacja","PKB per capita"))),
###wyświetlany wykres słupkowy
###sam wykres zostanie zdefiniowany w ramach elementu serwer
mainPanel(
plotOutput("wykres_slupkowy")
)
)),
##druga karta
tabPanel("Gapminder - wykres bąbelkowy",
###panel boczny
sidebarLayout(
sidebarPanel(
####wybór daty - suwak
sliderInput("data_babelkowy",
"Wybierz datę:",
min = 1952,
max = 2007,
value=2007,
step=5,
sep="",
#animacja - klatka po klatce zobaczyć będzie można poszczególne lata
animate = TRUE),
####wybór kontynentów - lista z checkboxami
####w przeciwieństwie do rozwijanej pozwala na wybór wielu elementów jednocześnie
checkboxGroupInput("kontynenty_babelkowy",
"Wybierz wyświetlane kontynenty:",
#możliwe do wybrania wartości
choices = c("Azja","Europa","Afryka","Ameryki","Oceania"),
#wartości domyślnie wybrane
selected = c("Azja","Europa","Afryka","Ameryki","Oceania"))),
###wyświetlany wykres bąbelkowy
mainPanel(
plotOutput("wykres_babelkowy")
)
)),
#trzecia karta
tabPanel("Rozwój krajów Europy",
###w ramach tej karty zaprezentowany zostanie sposób na umieszczenie
###kilku wykresów jednocześnie w jednej karcie
sidebarLayout(
sidebarPanel(
####wybór zmiennej - lista rozwijana
selectInput("kraj_liniowy",
"Wybierz kraj:",
#zamiast wypisywać możliwe wartości kod odwołuje się bezpośrednio do danych
choices = unique(gapminder%>%filter(continent=="Europe")%>%select(country)))),
###wyświetlane wykresy liniowe
mainPanel(
####wszystkie wykresy umieszczone są w funkcji fluidRow
####każdy umieszczony jest w osobnej funkcji column
####pierwszy argument funkcji kolumn decyduje o szerokości argumentu z 12 jako maksimum
####w celu umieszczenia dwóch wykresów obok siebie zamiast pod sobą 12 należałoby zamienić na 4
####(tak by suma szerokości 3 wykresów była równa 12)
fluidRow(
column(12,plotOutput("wykres_liniowy1")),
column(12,plotOutput("wykres_liniowy2")),
column(12,plotOutput("wykres_liniowy3"))
)
)
))
)
)
📘 Serwer
W ramach serwera zostanie zapisany kod R, który wykonywany będzie przez dashboard.
W tym przypadku będą to głównie wykresy jednak można tu umieścić obliczenia, przekształcenia danych itp.
server <- function(input, output) {
#wykres słupkowy
##wykres zostaje zapisany jako część elementu output
##do tych nazw odwoływać się można w ramach ui by wykres był widoczny w dashboardzie
##kod tworzący wykres obudowany jest funkcją renderPlot
output$wykres_slupkowy <- renderPlot({
###dane są filtorwane tak by ograniczyć je do zmiennej i roku
###wybranych przez użytkownika
###przywołane zostają input$zmienna_slupkowy i input$data_slupkowy,
###których nazwy zostały zdefiniowane w funkcjach tworzących
###suwak i listę rozwijaną pierwszej karty
dane%>%filter(zmienna==input$zmienna_slupkowy,
year==input$data_slupkowy)%>%
###dane zostają ograniczone do 20 obserwacji o najwyższych wartościach
###wybranej zmiennej w wybranym roku
slice_max(order_by = wartość,n=20)%>%
###tworzenie wykresu ggpolt
ggplot(aes(y=reorder(country, wartość),x=wartość))+
geom_bar(stat='identity',fill=k3)+
geom_text(aes(label=wartość),color=k2,fontface='bold')+
theme(
panel.background = element_rect(fill = k, colour = k4,
size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.1, linetype = 'solid',
colour = k4),
panel.grid.minor = element_line(size = 0.1, linetype = 'solid',
colour = k4),
plot.background = element_rect(fill = k),
axis.title= element_text(colour =k2,size=10,face='bold'),
axis.text= element_text(colour =k2,size=10,face='bold'))+
###do zdefiniowanego przez użytkownika inputu można odwoływać się
###nie tylko w celu filtrowania danych
### na przykład niżej opis osi bedzie zmieniał się w zależności od wybranej zmiennej
labs(x=input$zmienna_slupkowy,y="")
})
#wykres bąbelkowy
##po raz kolejny wykres zapisany jest jako część outputu, sam kod generujący wykres umieszczony jest w funkcji renderPlot
##tym razem odtworzony zostanie znany sposób prezentacji danych gapminder - wykres bąbelkowy
output$wykres_babelkowy <- renderPlot({gapminder%>%
###zmienna continent przeształcona jest na factor tak by możliwe było użycie
###w elementach interfejsu polskich nazw kontynentów
mutate(continent=factor(continent,
levels = c("Asia","Europe","Africa","Americas","Oceania"),
labels = c("Azja","Europa","Afryka","Ameryki","Oceania")))%>%
###dane ograniczone zostają do wybranego za pomocą suwaka roku
###należy pamiętać że w tym przypadku suwak umożliwia animację wykresu
###tzn. dane będą filtrowane wielokrotnie,
###w tym wypadku również wykres będzie wielokrotnie tworzony
filter(year==input$data_babelkowy,
###użytkownik ma mozliwość wyboru wielu kontynentów na raz
###więc w filtrze wykorzystano operator %in%
continent %in% input$kontynenty_babelkowy)%>%
###tworzenie wykresu ggpolt
ggplot(aes(y=lifeExp,x=gdpPercap,color=continent,size=pop))+
geom_point()+
theme(
panel.background = element_rect(fill = k, colour = k4,
size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.1, linetype = 'solid',
colour = k4),
panel.grid.minor = element_line(size = 0.1, linetype = 'solid',
colour = k4),
plot.background = element_rect(fill = k),
legend.background = element_rect(fill = k),
axis.title= element_text(colour =k2,size=10,face='bold'),
legend.title= element_text(colour =k2,size=10,face='bold'),
axis.text= element_text(colour =k2,size=10,face='bold'),
legend.text= element_text(colour =k2,size=10,face='bold'))+
labs(x="PKB per capita",y="średnia długość życia")+
###stałe zakresy wartości dla osi oraz rozmiaru punktów wprowadzono
###by legenda i osie nie zmieniały się podczas animacji
###w przeciwnym wypadku każdy wykres miałby trochę inną skalę na osiach
###oraz w legendzie dopasowaną do danych dla danego roku
xlim(0,60000)+
ylim(0,84)+
scale_size(limits = c(60000,1319000000))+
labs(size="Populacja", color="Kontynent")
})
#wykresy liniowe
##dla karty trzeciej przygotowane zostaną trzy osobne wykresy
output$wykres_liniowy1 <- renderPlot({
gapminder_unfiltered%>%filter(country==input$kraj_liniowy)%>%
ggplot(aes(y=lifeExp,x=year))+
geom_line(color=k3,size=2)+
theme(
panel.background = element_rect(fill = k, colour = k4,
size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.1, linetype = 'solid',
colour = k4),
panel.grid.minor = element_line(size = 0.1, linetype = 'solid',
colour = k4),
plot.background = element_rect(fill = k),
axis.title= element_text(colour =k2,size=10,face='bold'),
axis.text= element_text(colour =k2,size=10,face='bold'))+
labs(x="",y="średnia długość życia")
})
output$wykres_liniowy2 <- renderPlot({
gapminder_unfiltered%>%filter(country==input$kraj_liniowy)%>%
ggplot(aes(y=pop,x=year))+
geom_line(color=k3,size=2)+
theme(
panel.background = element_rect(fill = k, colour = k4,
size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.1, linetype = 'solid',
colour = k4),
panel.grid.minor = element_line(size = 0.1, linetype = 'solid',
colour = k4),
plot.background = element_rect(fill = k),
axis.title= element_text(colour =k2,size=10,face='bold'),
axis.text= element_text(colour =k2,size=10,face='bold'))+
labs(x="",y="populacja")
})
output$wykres_liniowy3 <- renderPlot({
gapminder_unfiltered%>%filter(country==input$kraj_liniowy)%>%
ggplot(aes(y=gdpPercap,x=year))+
geom_line(color=k3,size=2)+
theme(
panel.background = element_rect(fill = k, colour = k4,
size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.1, linetype = 'solid',
colour = k4),
panel.grid.minor = element_line(size = 0.1, linetype = 'solid',
colour = k4),
plot.background = element_rect(fill = k),
axis.title= element_text(colour =k2,size=10,face='bold'),
axis.text= element_text(colour =k2,size=10,face='bold'))+
labs(x="",y="PKB per capita")
})
}
📘 Uruchomienie aplikacji
Po przygotowaniu serwera i ui w taki sposób możliwe jest wywołanie samego dashboardu za pomocą funkcji shinyApp.
## PhantomJS not found. You can install it with webshot::install_phantomjs(). If it is installed, please make sure the phantomjs executable can be found via the PATH variable.
📗 14. Uczenie maszynowe z pakietem mlr3
📘 Pakiet mlr3
Pakiet mlr3 pozwala na wykorzystanie różnorodnych algorytmów uczenia maszynowego w ujednolicony sposób.
📘 Klasyfikacja
Algorytmy te pozwalają przewidzieć klasę do jakiej należy dana obserwacja.
Na przykład w przypadku zbioru danych iris kolumna Species określa przynależność danego kwiatu do jednego z trzech gatunków.
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
❕ Zadanie
W celu wytrenowania algorytmu dla danego zbioru danych należy stworzyć zadanie.
Umożliwia to funkcja as_task_classif której pierwszy argument to nasz zbiór danych a drugi to nazwa kolumny w której znajduje się przewidywana klasa.
## <TaskClassif:iris> (150 x 5)
## * Target: Species
## * Properties: multiclass
## * Features (4):
## - dbl (4): Petal.Length, Petal.Width, Sepal.Length, Sepal.Width
Należy pamiętać, że kolumna podana jako target musi zawierać zmienną typu factor.
W przypadku zbioru danych iris kolumna Species jest typu factor, jednak jeżeli to zmienimy próba utworzenia zadania zwróci error.
❕ Algorytm
Niezależnie od utworzonego powyżej zadania należy stworzyć obiekt, który zdefiniuje typ algorytmu jaki zostanie wykorzystany.
Dostępne algorytmy można zobaczyć przywołując następujący obiekt:
## <DictionaryLearner> with 6 stored values
## Keys: classif.debug, classif.featureless, classif.rpart, regr.debug,
## regr.featureless, regr.rpart
Niewiele algorytmów jest dostępne w ramach podstawowego mlr3.
By uzyskać dostęp do dodatkowych algorytmów należy wczytać następującą bibliotekę.
Teraz lista dostępnych algorytmów zawiera znacznie więcej elementów.
## <DictionaryLearner> with 27 stored values
## Keys: classif.cv_glmnet, classif.debug, classif.featureless,
## classif.glmnet, classif.kknn, classif.lda, classif.log_reg,
## classif.multinom, classif.naive_bayes, classif.nnet, classif.qda,
## classif.ranger, classif.rpart, classif.svm, classif.xgboost,
## regr.cv_glmnet, regr.debug, regr.featureless, regr.glmnet, regr.kknn,
## regr.km, regr.lm, regr.nnet, regr.ranger, regr.rpart, regr.svm,
## regr.xgboost
Dzięki temu wykorzystać będzie można takie algorytmy jak na przykład k najbliższych sąsiadów.
Możliwe że wybrany algorytm wymagać będzie instalacji dodatkowego pakietu.
Powyższy algorytm wymaga na przykład pakietu kknn.
Nie trzeba jednak wczytywać pakietu za pomocą funkcji library() - wystarczy że jest on zainstalowany.
Podstawowe zastosowanie algorytmu.
Tak przygotowany algorytm można teraz zastosować dla określonego zadania.
Najpierw konieczne jest wytrenowanie modelu - etap ten można porównać do oszacowania parametrów modelu ekonometrycznego.
Należy zwrócić uwagę na to, że przywołanie $train() zmodyfikuje już istniejący obiekt drzewo_decyzyjne.
ynik nie jest zapisany jako osobny model a automatycznie nadpisuje utworzony wcześniej obiekt dla którego zdefiniowano tylko algorytm.
## NULL
Zastosowanie algorytmu drzewa decyzyjnego dla zadania klasyfikacji kwiatów powoduje że model nie jest już pusty.
## n= 150
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 150 100 setosa (0.33333333 0.33333333 0.33333333)
## 2) Petal.Length< 2.45 50 0 setosa (1.00000000 0.00000000 0.00000000) *
## 3) Petal.Length>=2.45 100 50 versicolor (0.00000000 0.50000000 0.50000000)
## 6) Petal.Width< 1.75 54 5 versicolor (0.00000000 0.90740741 0.09259259) *
## 7) Petal.Width>=1.75 46 1 virginica (0.00000000 0.02173913 0.97826087) *
W celu uzyskania wartości przewidywanych przez model należy zastosować $predict().
W przeciwieństwie do $train() wyniki $predict() należy zapisać jako osobny obiekt.
Warto zauważyć, że wynik tej operacji zwraca tabelę w której znajdują się zarówno wartości rzeczywiste (truth) jak i przewidywane (response).
## <PredictionClassif> for 150 observations:
## row_ids truth response
## 1 setosa setosa
## 2 setosa setosa
## 3 setosa setosa
## ---
## 148 virginica virginica
## 149 virginica virginica
## 150 virginica virginica
❕ Podział na zbiór uczący i testowy
W celu poprawnej oceny jakości dopasowania modelu należy losowo wydzielić zbiór uczący i testowy.
Zbiór testowy symulować ma trafność przewidywania modelu dla nowych obserwacji.
Posłużyć do tego może funkcja partition.
Funkcja ta zwraca dwie listy id elementów przypisanych do zbioru uczącego (train) i testowego (test).
## $train
## [1] 3 4 5 7 8 9 10 11 12 13 14 15 17 19 21 24 25 26
## [19] 27 28 29 30 31 32 36 37 40 41 42 43 45 48 49 50 55 56
## [37] 57 58 59 60 61 62 63 65 66 67 68 70 71 73 75 76 77 79
## [55] 81 82 83 84 85 88 90 91 92 93 94 95 96 97 102 103 104 105
## [73] 107 108 110 112 113 114 115 118 119 121 122 123 125 126 129 130 131 132
## [91] 134 135 138 139 140 141 142 143 144 145 146 147
##
## $test
## [1] 1 2 6 16 18 20 22 23 33 34 35 38 39 44 46 47 51 52 53
## [20] 54 64 69 72 74 78 80 86 87 89 98 99 100 101 106 109 111 116 117
## [39] 120 124 127 128 133 136 137 148 149 150
Domyślnie zbiór uczący stanowić będzie 67% obserwacji z oryginalnego zbioru danych, a zbiór testowy 33%.
By to zmienić można użyć argumentu ratio określającego procent obserwacji który zostanie wylosowany do zbioru uczącego.
Poniższa komenda podzieli obserwacje tak by 50% znalazło się w zbiorze uczącym.
## $train
## [1] 5 6 7 10 12 15 16 17 20 22 23 24 26 27 29 30 32 35 38
## [20] 39 40 41 43 46 50 51 54 57 59 61 63 66 69 70 71 72 74 75
## [39] 76 80 82 83 84 86 89 93 94 95 96 98 101 102 103 106 108 111 113
## [58] 114 116 120 121 122 123 127 129 132 135 136 139 140 142 144 147 149 150
##
## $test
## [1] 1 2 3 4 8 9 11 13 14 18 19 21 25 28 31 33 34 36 37
## [20] 42 44 45 47 48 49 52 53 55 56 58 60 62 64 65 67 68 73 77
## [39] 78 79 81 85 87 88 90 91 92 97 99 100 104 105 107 109 110 112 115
## [58] 117 118 119 124 125 126 128 130 131 133 134 137 138 141 143 145 146 148
By skorzystać z podziału wykonanego za pomocą funkcji partition należy wykorzystać argument row_ids.
Na etapie tworzenia modelu wykorzystany zostanie tylko zbiór uczący.
Przewidywanie gatunków dla zbioru testowego.
gatunki_przewidywane_test <- knn$predict(zadanie,row_ids = uczący_testowy$test)
gatunki_przewidywane_test
## <PredictionClassif> for 48 observations:
## row_ids truth response
## 1 setosa setosa
## 2 setosa setosa
## 6 setosa setosa
## ---
## 148 virginica virginica
## 149 virginica virginica
## 150 virginica versicolor
❕ Parametry modelu
By sprawdzić jakie wartości parametrów zostały ustawione przez $train() wykorzystać można param_set.
## <ParamSet>
## id class lower upper nlevels default value
## 1: k ParamInt 1 Inf Inf 7 7
## 2: distance ParamDbl 0 Inf Inf 2
## 3: kernel ParamFct NA NA 10 optimal
## 4: scale ParamLgl NA NA 2 TRUE
## 5: ykernel ParamUty NA NA Inf
## 6: store_model ParamLgl NA NA 2 FALSE
Możliwa jest samodzielna modyfikacja parametrów.
Odwołać się do nich można za pomocą nazwy z kolumny id.
Na przykład dla algorytmu najbliższych sąsiadów liczba sąsiadów branych pod uwagę może być zmodyfikowana przy użyciu argumentu k.
Wywołując param_set można zaobserwować, że dla nowego modelu k jest równe nie 7 a 5.
## <ParamSet>
## id class lower upper nlevels default value
## 1: k ParamInt 1 Inf Inf 7 5
## 2: distance ParamDbl 0 Inf Inf 2
## 3: kernel ParamFct NA NA 10 optimal
## 4: scale ParamLgl NA NA 2 TRUE
## 5: ykernel ParamUty NA NA Inf
## 6: store_model ParamLgl NA NA 2 FALSE
❕ Ocena modeli
Istnieje wiele miar pozwalających na ocenę i porównywanie modeli.
W ramach pakietu mlr3 dostępne są następujące miary .
## <DictionaryMeasure> with 62 stored values
## Keys: aic, bic, classif.acc, classif.auc, classif.bacc, classif.bbrier,
## classif.ce, classif.costs, classif.dor, classif.fbeta, classif.fdr,
## classif.fn, classif.fnr, classif.fomr, classif.fp, classif.fpr,
## classif.logloss, classif.mauc_au1p, classif.mauc_au1u,
## classif.mauc_aunp, classif.mauc_aunu, classif.mbrier, classif.mcc,
## classif.npv, classif.ppv, classif.prauc, classif.precision,
## classif.recall, classif.sensitivity, classif.specificity, classif.tn,
## classif.tnr, classif.tp, classif.tpr, debug, oob_error, regr.bias,
## regr.ktau, regr.mae, regr.mape, regr.maxae, regr.medae, regr.medse,
## regr.mse, regr.msle, regr.pbias, regr.rae, regr.rmse, regr.rmsle,
## regr.rrse, regr.rse, regr.rsq, regr.sae, regr.smape, regr.srho,
## regr.sse, selected_features, sim.jaccard, sim.phi, time_both,
## time_predict, time_train
Bardziej rozbudowane informacje można uzyskać następująco.
## key label
## 1: aic Akaika Information Criterion
## 2: bic Bayesian Information Criterion
## 3: classif.acc Classification Accuracy
## 4: classif.auc Area Under the ROC Curve
## 5: classif.bacc Balanced Accuracy
## 6: classif.bbrier Binary Brier Score
## 7: classif.ce Classification Error
## 8: classif.costs Cost-sensitive Classification
## 9: classif.dor Diagnostic Odds Ratio
## 10: classif.fbeta F-beta score
## 11: classif.fdr False Discovery Rate
## 12: classif.fn False Negatives
## 13: classif.fnr False Negative Rate
## 14: classif.fomr False Omission Rate
## 15: classif.fp False Positives
## 16: classif.fpr False Positive Rate
## 17: classif.logloss Log Loss
## 18: classif.mauc_au1p Weighted average 1 vs. 1 multiclass AUC
## 19: classif.mauc_au1u Average 1 vs. 1 multiclass AUC
## 20: classif.mauc_aunp Weighted average 1 vs. rest multiclass AUC
## 21: classif.mauc_aunu Average 1 vs. rest multiclass AUC
## 22: classif.mbrier Multiclass Brier Score
## 23: classif.mcc Matthews Correlation Coefficient
## 24: classif.npv Negative Predictive Value
## 25: classif.ppv Positive Predictive Value
## 26: classif.prauc Precision-Recall Curve
## 27: classif.precision Precision
## 28: classif.recall Recall
## 29: classif.sensitivity Sensitivity
## 30: classif.specificity Specificity
## 31: classif.tn True Negatives
## 32: classif.tnr True Negative Rate
## 33: classif.tp True Positives
## 34: classif.tpr True Positive Rate
## 35: debug Debug Classification Measure
## 36: oob_error Out-of-bag Error
## 37: regr.bias Bias
## 38: regr.ktau Kendall's tau
## 39: regr.mae Mean Absolute Error
## 40: regr.mape Mean Absolute Percent Error
## 41: regr.maxae Max Absolute Error
## 42: regr.medae Median Absolute Error
## 43: regr.medse Median Squared Error
## 44: regr.mse Mean Squared Error
## 45: regr.msle Mean Squared Log Error
## 46: regr.pbias Percent Bias
## 47: regr.rae Relative Absolute Error
## 48: regr.rmse Root Mean Squared Error
## 49: regr.rmsle Root Mean Squared Log Error
## 50: regr.rrse Root Relative Squared Error
## 51: regr.rse Relative Squared Error
## 52: regr.rsq R Squared
## 53: regr.sae Sum of Absolute Errors
## 54: regr.smape Symmetric Mean Absolute Percent Error
## 55: regr.srho Spearman's rho
## 56: regr.sse Sum of Squared Errors
## 57: selected_features Absolute or Relative Frequency of Selected Features
## 58: sim.jaccard Jaccard Similarity Index
## 59: sim.phi Phi Coefficient Similarity
## 60: time_both Elapsed Time
## 61: time_predict Elapsed Time
## 62: time_train Elapsed Time
## key label
## task_type packages predict_type task_properties
## 1: <NA> mlr3 response
## 2: <NA> mlr3 response
## 3: classif mlr3,mlr3measures response
## 4: classif mlr3,mlr3measures prob twoclass
## 5: classif mlr3,mlr3measures response
## 6: classif mlr3,mlr3measures prob twoclass
## 7: classif mlr3,mlr3measures response
## 8: classif mlr3 response
## 9: classif mlr3,mlr3measures response twoclass
## 10: classif mlr3,mlr3measures response twoclass
## 11: classif mlr3,mlr3measures response twoclass
## 12: classif mlr3,mlr3measures response twoclass
## 13: classif mlr3,mlr3measures response twoclass
## 14: classif mlr3,mlr3measures response twoclass
## 15: classif mlr3,mlr3measures response twoclass
## 16: classif mlr3,mlr3measures response twoclass
## 17: classif mlr3,mlr3measures prob
## 18: classif mlr3,mlr3measures prob
## 19: classif mlr3,mlr3measures prob
## 20: classif mlr3,mlr3measures prob
## 21: classif mlr3,mlr3measures prob
## 22: classif mlr3,mlr3measures prob
## 23: classif mlr3,mlr3measures response twoclass
## 24: classif mlr3,mlr3measures response twoclass
## 25: classif mlr3,mlr3measures response twoclass
## 26: classif mlr3,mlr3measures prob twoclass
## 27: classif mlr3,mlr3measures response twoclass
## 28: classif mlr3,mlr3measures response twoclass
## 29: classif mlr3,mlr3measures response twoclass
## 30: classif mlr3,mlr3measures response twoclass
## 31: classif mlr3,mlr3measures response twoclass
## 32: classif mlr3,mlr3measures response twoclass
## 33: classif mlr3,mlr3measures response twoclass
## 34: classif mlr3,mlr3measures response twoclass
## 35: <NA> mlr3 response
## 36: <NA> mlr3 response
## 37: regr mlr3,mlr3measures response
## 38: regr mlr3,mlr3measures response
## 39: regr mlr3,mlr3measures response
## 40: regr mlr3,mlr3measures response
## 41: regr mlr3,mlr3measures response
## 42: regr mlr3,mlr3measures response
## 43: regr mlr3,mlr3measures response
## 44: regr mlr3,mlr3measures response
## 45: regr mlr3,mlr3measures response
## 46: regr mlr3,mlr3measures response
## 47: regr mlr3,mlr3measures response
## 48: regr mlr3,mlr3measures response
## 49: regr mlr3,mlr3measures response
## 50: regr mlr3,mlr3measures response
## 51: regr mlr3,mlr3measures response
## 52: regr mlr3,mlr3measures response
## 53: regr mlr3,mlr3measures response
## 54: regr mlr3,mlr3measures response
## 55: regr mlr3,mlr3measures response
## 56: regr mlr3,mlr3measures response
## 57: <NA> mlr3 response
## 58: <NA> mlr3,mlr3measures response
## 59: <NA> mlr3,mlr3measures response
## 60: <NA> mlr3 <NA>
## 61: <NA> mlr3 <NA>
## 62: <NA> mlr3 <NA>
## task_type packages predict_type task_properties
Podobnie jak w przypadku wybrania używanego algorytmu należy utworzyć obiekt określający, która miara zostanie wykorzystana.
Na przykład w celu obliczenia trafności (ang. accuracy) obiekt należy zdefiniować następująco.
By obliczyć trafność danego modelu na danym zbiorze danych najpierw należy otrzymać przewidywane wartości za pomocą $predict().
gatunki_przewidywane_test_knn_k5 <- knn_k5$predict(zadanie,row_ids = uczący_testowy$test)
gatunki_przewidywane_test_knn_k5
## <PredictionClassif> for 48 observations:
## row_ids truth response
## 1 setosa setosa
## 2 setosa setosa
## 6 setosa setosa
## ---
## 148 virginica virginica
## 149 virginica virginica
## 150 virginica virginica
Po zapisaniu wyniku $predict() można dla tego obiektu obliczyć trafność wykorzystując $score().
Wynik oznacza odsetek poprawnie sklasyfikowanych obserwacji ze zbioru testowego przy pomoc algorytmu k najbliższych sąsiadów z k=5.
## classif.acc
## 0.9583333
❕ Regresja
Algorytmy te pozwalają przewidzieć wartość zmiennej ilościowej.
Tak jak w przypadku klasyfikacji należy utworzyć zadanie.
Dla regresji zamiast funkcji as_task_classif należy wykorzystać as_task_regr.
W tym przykładzie przewidywana będzie szerokość płatka.
Wybór algorytmu następuje również w ten sam sposób jak w przypadku klasyfikacji.
Dla zadania regresji dostępne są jednak inne algorytmy.
## <DictionaryLearner> with 27 stored values
## Keys: classif.cv_glmnet, classif.debug, classif.featureless,
## classif.glmnet, classif.kknn, classif.lda, classif.log_reg,
## classif.multinom, classif.naive_bayes, classif.nnet, classif.qda,
## classif.ranger, classif.rpart, classif.svm, classif.xgboost,
## regr.cv_glmnet, regr.debug, regr.featureless, regr.glmnet, regr.kknn,
## regr.km, regr.lm, regr.nnet, regr.ranger, regr.rpart, regr.svm,
## regr.xgboost
W omawianym przykładzie zostanie wykorzystany las losowy.
❕ Model
Wartości przewidywane dla zbioru testowego.
Wiele z miar wykorzystywanych do oceny modeli uczenia maszynowego majacych na celu regresję są analogiczne do tych wykorzystywanych w ekonometrii Przykładem może być MAPE czy MAE.
## key label
## 1: aic Akaika Information Criterion
## 2: bic Bayesian Information Criterion
## 3: classif.acc Classification Accuracy
## 4: classif.auc Area Under the ROC Curve
## 5: classif.bacc Balanced Accuracy
## 6: classif.bbrier Binary Brier Score
## 7: classif.ce Classification Error
## 8: classif.costs Cost-sensitive Classification
## 9: classif.dor Diagnostic Odds Ratio
## 10: classif.fbeta F-beta score
## 11: classif.fdr False Discovery Rate
## 12: classif.fn False Negatives
## 13: classif.fnr False Negative Rate
## 14: classif.fomr False Omission Rate
## 15: classif.fp False Positives
## 16: classif.fpr False Positive Rate
## 17: classif.logloss Log Loss
## 18: classif.mauc_au1p Weighted average 1 vs. 1 multiclass AUC
## 19: classif.mauc_au1u Average 1 vs. 1 multiclass AUC
## 20: classif.mauc_aunp Weighted average 1 vs. rest multiclass AUC
## 21: classif.mauc_aunu Average 1 vs. rest multiclass AUC
## 22: classif.mbrier Multiclass Brier Score
## 23: classif.mcc Matthews Correlation Coefficient
## 24: classif.npv Negative Predictive Value
## 25: classif.ppv Positive Predictive Value
## 26: classif.prauc Precision-Recall Curve
## 27: classif.precision Precision
## 28: classif.recall Recall
## 29: classif.sensitivity Sensitivity
## 30: classif.specificity Specificity
## 31: classif.tn True Negatives
## 32: classif.tnr True Negative Rate
## 33: classif.tp True Positives
## 34: classif.tpr True Positive Rate
## 35: debug Debug Classification Measure
## 36: oob_error Out-of-bag Error
## 37: regr.bias Bias
## 38: regr.ktau Kendall's tau
## 39: regr.mae Mean Absolute Error
## 40: regr.mape Mean Absolute Percent Error
## 41: regr.maxae Max Absolute Error
## 42: regr.medae Median Absolute Error
## 43: regr.medse Median Squared Error
## 44: regr.mse Mean Squared Error
## 45: regr.msle Mean Squared Log Error
## 46: regr.pbias Percent Bias
## 47: regr.rae Relative Absolute Error
## 48: regr.rmse Root Mean Squared Error
## 49: regr.rmsle Root Mean Squared Log Error
## 50: regr.rrse Root Relative Squared Error
## 51: regr.rse Relative Squared Error
## 52: regr.rsq R Squared
## 53: regr.sae Sum of Absolute Errors
## 54: regr.smape Symmetric Mean Absolute Percent Error
## 55: regr.srho Spearman's rho
## 56: regr.sse Sum of Squared Errors
## 57: selected_features Absolute or Relative Frequency of Selected Features
## 58: sim.jaccard Jaccard Similarity Index
## 59: sim.phi Phi Coefficient Similarity
## 60: time_both Elapsed Time
## 61: time_predict Elapsed Time
## 62: time_train Elapsed Time
## key label
## task_type packages predict_type task_properties
## 1: <NA> mlr3 response
## 2: <NA> mlr3 response
## 3: classif mlr3,mlr3measures response
## 4: classif mlr3,mlr3measures prob twoclass
## 5: classif mlr3,mlr3measures response
## 6: classif mlr3,mlr3measures prob twoclass
## 7: classif mlr3,mlr3measures response
## 8: classif mlr3 response
## 9: classif mlr3,mlr3measures response twoclass
## 10: classif mlr3,mlr3measures response twoclass
## 11: classif mlr3,mlr3measures response twoclass
## 12: classif mlr3,mlr3measures response twoclass
## 13: classif mlr3,mlr3measures response twoclass
## 14: classif mlr3,mlr3measures response twoclass
## 15: classif mlr3,mlr3measures response twoclass
## 16: classif mlr3,mlr3measures response twoclass
## 17: classif mlr3,mlr3measures prob
## 18: classif mlr3,mlr3measures prob
## 19: classif mlr3,mlr3measures prob
## 20: classif mlr3,mlr3measures prob
## 21: classif mlr3,mlr3measures prob
## 22: classif mlr3,mlr3measures prob
## 23: classif mlr3,mlr3measures response twoclass
## 24: classif mlr3,mlr3measures response twoclass
## 25: classif mlr3,mlr3measures response twoclass
## 26: classif mlr3,mlr3measures prob twoclass
## 27: classif mlr3,mlr3measures response twoclass
## 28: classif mlr3,mlr3measures response twoclass
## 29: classif mlr3,mlr3measures response twoclass
## 30: classif mlr3,mlr3measures response twoclass
## 31: classif mlr3,mlr3measures response twoclass
## 32: classif mlr3,mlr3measures response twoclass
## 33: classif mlr3,mlr3measures response twoclass
## 34: classif mlr3,mlr3measures response twoclass
## 35: <NA> mlr3 response
## 36: <NA> mlr3 response
## 37: regr mlr3,mlr3measures response
## 38: regr mlr3,mlr3measures response
## 39: regr mlr3,mlr3measures response
## 40: regr mlr3,mlr3measures response
## 41: regr mlr3,mlr3measures response
## 42: regr mlr3,mlr3measures response
## 43: regr mlr3,mlr3measures response
## 44: regr mlr3,mlr3measures response
## 45: regr mlr3,mlr3measures response
## 46: regr mlr3,mlr3measures response
## 47: regr mlr3,mlr3measures response
## 48: regr mlr3,mlr3measures response
## 49: regr mlr3,mlr3measures response
## 50: regr mlr3,mlr3measures response
## 51: regr mlr3,mlr3measures response
## 52: regr mlr3,mlr3measures response
## 53: regr mlr3,mlr3measures response
## 54: regr mlr3,mlr3measures response
## 55: regr mlr3,mlr3measures response
## 56: regr mlr3,mlr3measures response
## 57: <NA> mlr3 response
## 58: <NA> mlr3,mlr3measures response
## 59: <NA> mlr3,mlr3measures response
## 60: <NA> mlr3 <NA>
## 61: <NA> mlr3 <NA>
## 62: <NA> mlr3 <NA>
## task_type packages predict_type task_properties
Wartość MAPE uzyskana przez model.
## regr.mape
## 0.2021149