Zrobiony Rozdział 3

This commit is contained in:
CezaryPukownik 2020-04-11 20:32:22 +02:00
parent a011846a02
commit 8ea82f37dc
2 changed files with 1260 additions and 150 deletions

503
Kurs_R.R
View File

@ -1,150 +1,353 @@
library(tidyverse) library(tidyverse)
# 2.3.1 #' # 2.3.1
# Zadanie 1 #' ## Zadanie 1
airquality %>% airquality %>%
select(Ozone, Solar.R, Wind, Temp) %>% select(Ozone, Solar.R, Wind, Temp) %>%
filter(Ozone>80) filter(Ozone>80)
# Zadanie 2 #' ## Zadanie 2
install.packages('weathermetrics') #install.packages('weathermetrics')
library(weathermetrics) library(weathermetrics)
airquality %>% airquality %>%
mutate(TempC=fahrenheit.to.celsius(Temp)) mutate(TempC=fahrenheit.to.celsius(Temp))
# 2.4.1 #' # 2.4.1
# Zadanie 1 #' ## Zadanie 1
as_tibble(airquality) as_tibble(airquality)
# Zadanie 2 #' ## Zadanie 2
tibble(litery=letters[6:11], tibble(litery=letters[6:11],
miesiace=month.name[1:6]) miesiace=month.name[1:6])
# 3.2.4 #' # 3.2.4
# Zadanie 1 #' ## Zadanie 1
ggplot(data=mpg) ggplot(data=mpg)
# Co widzisz? #' Co widzisz?
# Szare. puste pole #' Szare. puste pole
# Zadanie 2 #' ## Zadanie 2
as_tibble(mtcars) as_tibble(mtcars)
# liczba wierszy: 32 #' liczba wierszy: 32
# Zadanie 3 #' ## Zadanie 3
?mpg ?mpg
# drv #' drv
# f = front-wheel drive, r = rear wheel drive, 4 = 4wd #' f = front-wheel drive, r = rear wheel drive, 4 = 4wd
# Zadanie 4 #' ## Zadanie 4
ggplot(aes(x=hwy, y=cyl), data=as_tibble(mpg)) + geom_point() ggplot(aes(x=hwy, y=cyl), data=as_tibble(mpg)) + geom_point()
# Zadanie 5 #' ## Zadanie 5
ggplot(aes(x=class, y=drv), data=as_tibble(mpg)) + geom_point() ggplot(aes(x=class, y=drv), data=as_tibble(mpg)) + geom_point()
# Dlaczego wykres jest bezuzyteczny? #' Dlaczego wykres jest bezuzyteczny?
# Wykres nie pokazuje żadnych liczbowych informacji na temat danych #' Wykres nie pokazuje żadnych liczbowych informacji na temat danych
# Zostały wykorzystane dwie cechy typu categorical #' Zostały wykorzystane dwie cechy typu categorical
# Jedyną informacją jest to, czy dana kombinacja drv i class istanieje. #' Jedyną informacją jest to, czy dana kombinacja drv i class istanieje.
# 3.3.1 #' # 3.3.1
# Zadanie 1 #' ## Zadanie 1
# ustalenie parametru color wewnątrz funckcji aes #' ustalenie parametru color wewnątrz funckcji aes
# powinno być nazwą kolumny z categoriami, po których #' powinno być nazwą kolumny z categoriami, po których
# punkty zostaną pogrupowane, a nie istanieje kolumna "blue" #' punkty zostaną pogrupowane, a nie istanieje kolumna "blue"
# w zbriorze danych #' w zbriorze danych
#'
# parametr color powinien zostać ustalony wewnątrz #' parametr color powinien zostać ustalony wewnątrz
# funkcji geom_point. Poprawiony kod poniżej. #' funkcji geom_point. Poprawiony kod poniżej.
ggplot(data = mpg) + ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy), color = "blue") geom_point(mapping = aes(x = displ, y = hwy), color = "blue")
# Zadanie 2 #' ## Zadanie 2
mpg mpg
# kolumny z danymi kategorialnymi to: #' kolumny z danymi kategorialnymi to:
# manufacturer, model, trans, frv, fl, class #' manufacturer, model, trans, frv, fl, class
# można zwrócić uwagę na typ danych w kolumnie #' można zwrócić uwagę na typ danych w kolumnie
# jeśli typ to <chr>, to najprawdopodobniej jest to dana kategorialna #' jeśli typ to <chr>, to najprawdopodobniej jest to dana kategorialna
# Zadanie 3 #' ## Zadanie 3
ggplot(data = mpg) + ggplot(data = mpg) +
geom_point(mapping = aes(x=displ, y=hwy, color=displ, size=displ)) geom_point(mapping = aes(x=displ, y=hwy, color=displ, size=displ))
# zmienna ciągła jest interpolowania między dwoma kolorami tworząc gradient #' zmienna ciągła jest interpolowania między dwoma kolorami tworząc gradient
# tak jak samo z rozmiarem, rozmiar jest skalowany #' tak jak samo z rozmiarem, rozmiar jest skalowany
# w przypadku shape powoduje to błąd. Gdyby podać dane kategorialne #' w przypadku shape powoduje to błąd. Gdyby podać dane kategorialne
# podział byłby dyskretny, na różne kolory, wielkości, kształty #' podział byłby dyskretny, na różne kolory, wielkości, kształty
# Zadanie 4 #' ## Zadanie 4
# Przykład w punkcie wyżej #' Przykład w punkcie wyżej
# Ta sama zmienna bedzie przedstawiona różnymi metodami #' Ta sama zmienna bedzie przedstawiona różnymi metodami
# Zadanie 5 #' ## Zadanie 5
# stroke wpływa na grubuść konturu, obrysu, mozna sposować z punktami i liniami #' stroke wpływa na grubuść konturu, obrysu, mozna stosować z punktami i liniami
?geom_point ?geom_point
# Zadanie 6 #' ## Zadanie 6
ggplot(data = mpg) + ggplot(data = mpg) +
geom_point(mapping = aes(x=displ, y=hwy, color=displ < 5)) geom_point(mapping = aes(x=displ, y=hwy, color=displ < 5))
mpg %>% mpg %>%
filter(displ < 5) %>% filter(displ < 5) %>%
mutate(is_less_than_5=displ < 5) mutate(is_less_than_5=displ < 5)
# Przypisanie displ < 5 podzieliło data set na dwie grupy #' Przypisanie displ < 5 podzieliło data set na dwie grupy
# TRUE oraz FALSE, w zalezności od tego czy warunek był spełniony #' TRUE oraz FALSE, w zalezności od tego czy warunek był spełniony
# czy nie. #' czy nie.
# 3.5.1 #' # 3.5.1
# Zadanie 1 #' ## Zadanie 1
ggplot(data = mpg) + ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) + geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(drv ~ displ) facet_grid(drv ~ displ)
# ggplot potraktuje ją jako zmienną kategorialną, #' ggplot potraktuje ją jako zmienną kategorialną,
# tworząc siatkę dla kazdej unikatowej wartości zmiennej ciagłęj #' tworząc siatkę dla kazdej unikatowej wartości zmiennej ciagłęj
# Zadanie 2 #' ## Zadanie 2
ggplot(data = mpg) + ggplot(data = mpg) +
geom_point(mapping = aes(x = drv, y = cyl)) geom_point(mapping = aes(x = drv, y = cyl))
ggplot(data = mpg) + ggplot(data = mpg) +
geom_point(mapping = aes(x = drv, y = cyl)) + geom_point(mapping = aes(x = drv, y = cyl)) +
facet_grid(cyl~drv) facet_grid(cyl~drv)
# puste komórki oznacznaczają brak danych #' puste komórki oznacznaczają brak danych
# Zadanie 3 #' ## Zadanie 3
ggplot(data = mpg) + ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) + geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(drv ~ .) facet_grid(drv ~ .)
ggplot(data = mpg) + ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) + geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(. ~ cyl) facet_grid(. ~ cyl)
# kropka traktowana jest jako puste pole, #' kropka traktowana jest jako puste pole,
# wtedy jedna z osi, nie bedzie kategoryzowana #' wtedy jedna z osi, nie bedzie kategoryzowana
# Zadanie 4 #' ## Zadanie 4
ggplot(data = mpg) + ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) + geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~ class, nrow = 2) facet_wrap(~ class, nrow = 2)
#' # 3.6.1
#' ## Zadanie 1
#' liniowy - geom_line()
#' pudełkowy - geom_boxplot()
#' histogram - geom_histogram()
#' warstwowy - geom_area()
#' ## Zadanie 2
ggplot(data = mpg, mapping = aes(x = displ, y = hwy, color = drv)) +
geom_point() +
geom_smooth(se = FALSE)
#' ## Zadanie 3
#' show.legend = FALSE, sluży do ukrycia legendy
#' ## Zadanie 4
#' parametr se w funcji geom_smooth() służy do pokazania, lub ukrycia przedziałów ufnośći na wykresie.
#' ## Zadanie 5
#' dwa poniższe wyresy są takie same, różnią się tylko sposobem denifincji mapowania.
#' mapowanie wewnątrz aes w ggplot, przenosi mapowania na wszystkie geometrie, gdy nie sa zdefiniowane inne.
ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) +
geom_point() +
geom_smooth()
ggplot() +
geom_point(data = mpg, mapping = aes(x = displ, y = hwy)) +
geom_smooth(data = mpg, mapping = aes(x = displ, y = hwy))
#' ## Zadanie 6
#' Wykres 1
mpg %>%
ggplot(aes(x=displ, y=hwy)) +
geom_point() +
geom_smooth(se=FALSE)
#' Wykres 2
mpg %>%
ggplot(aes(x=displ, y=hwy, group=drv)) +
geom_point() +
geom_smooth(se=FALSE)
#' Wykres 3
mpg %>%
ggplot(aes(x=displ, y=hwy, color=drv)) +
geom_point() +
geom_smooth(se=FALSE)
#' Wykres 4
mpg %>%
ggplot(aes(x=displ, y=hwy)) +
geom_point(aes(color=drv)) +
geom_smooth(se=FALSE)
#' Wykres 5
mpg %>%
ggplot(aes(x=displ, y=hwy)) +
geom_point(aes(color=drv)) +
geom_smooth(aes(linetype=drv), se=FALSE)
#' Wykres 6
mpg %>%
ggplot(aes(x=displ, y=hwy)) +
geom_point(aes(fill=drv), shape=21, stroke=2, color='white', size=2)
#' # 3.7.1
# Zadanie 1
?stat_summary
#' Funcja stat_summary jest związana w funcją geom_pointrange()
diamonds %>%
ggplot() +
geom_pointrange(aes(x = cut, y = depth), stat='summary')
#' ## Zadanie 2
#' funkcja geom_bar służy do wykresów słupkowych/kolumnowych i jej domyslna statystyka do 'count',
#' funcja geom_col, ma domyślną statystykę 'identity'
#' ## Zadanie 3
#'
#' geom_bar : stat_count
#' geom_col : identity
#' geom_histogram: stat_bin
#' geom_line : identity
#' geom_path : identity
#' geom_step : identity
#' geom_segment : identity
#' geom_curve : identity
#' geom_spoke : identity
#' geom_polygon : identity
#' geom_ribbot : identity
#' geom_area : identity
#' geom_freqpoly : stat_bin
#'
#' ## Zadanie 4
#' ?geom_smmoth : stat_smooth
#' y - predicted value
#' ymin - lower pointwise confidence interval around the mean
#' yman - upper pointwise confidence interval around the mean
#' se = standard error
#'
#' ## Zadanie 5
#' każdy "słupek" jest taki sam
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, y = ..prop..))
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = color, y = ..prop..))
# uzyliśmy group=1, aby nadpisać domysle grupowanie funcji geom_bar, które grupuje po x, czyli po cut,
# dlatego każdy słupek wyglądał identycznie, ponieważ powinniśmy w tym przypadku zgrupować po całym zbiorze, usunąć grupy.
# równie dobrze będzie działać group=2, albo group='abc'
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = color, y = ..prop.., group=1))
#' # 3.8.1
#'
#' ## Zadanie 1
ggplot(data = mpg, mapping = aes(x = cty, y = hwy)) +
geom_point()
#' ## Zadanie 2
#' nakładają się na siebie punkty i nie widać dobrze zagęszczenia
#' mozna poprawić przez dodanie posiiton='jitter'
ggplot(data = mpg, mapping = aes(x = cty, y = hwy)) +
geom_point(position='jitter')
#' ## Zadanie 3
?geom_jitter
#' paremtry width i height
#'
ggplot(data = mpg, mapping = aes(x = cty, y = hwy)) +
geom_jitter(position='jitter')
ggplot(data = mpg, mapping = aes(x = cty, y = hwy)) +
geom_count(position='jitter')
#' obie funcje pokazują zagęszczenie, geom jitter, rozsuwa je aby było widać kazdy punkt.
#' geom count pokazuje zagęszczenie przez parametr size.
#' Zadanie 4
?geom_boxplot
#' domyślne dopasowanie dla geom_boxplot to 'dodge2
mpg %>%
ggplot(aes(x=cty, y=factor(cyl))) +
geom_boxplot()
#' # 3.9.1
#' ## Zadanie 1
mpg %>%
ggplot(aes(x=1, fill=class))+
geom_bar() +
coord_polar()
#' ## Zadanie 2
#' Funcjka labs, służy do dodania etykiet tetułu, opisy osi, i innnych tektów na wykresie
mpg %>%
ggplot(aes(x=1, fill=class))+
geom_bar() +
coord_polar() +
labs(title='Słupkotwy wykres skumulowany',
subtitle='O kordynatach polarnych',
y='Liczba',
x='Wartość dummy')
#' ## Zadanie 3
#' coord_map posiada więcej parametrów, np projectiom, parameters i orientation
#' coord_quickmap, nie posiada tych parametrów.
#' coord_map nada się do większych powirzchni świata, to jest pojekcją powierzchni sfery
#' na plaski 2D. coord_quickmap, nadaje się do map o małym rozmiarze i zachowuje proste linie.
#' ## Zadanie 4
#'
#'
ggplot(data = mpg, mapping = aes(x = cty, y = hwy)) +
geom_point() +
geom_abline() +
coord_fixed()
#' Z wykresu wnioskujemy, że spalanie w mieście i na autostradzie są skorelowane.
#' Jeśli samochód pali dużo w mieście, to pali duzo na autostradzie i odwotnie.
#'
#' Linia ab, pokazuje tam prostą y=x, dzięki temu mamy odniesienie i dodatkowo możemy wywnioskować,
#' że na galonie paliwa, na autostradzie zawsze przejedziemy wiecej niż w mieście.
#'
#' Coord fixed, sprawia że wartości obu osi są w tej samej skali. Obie wartości to liczba przejechanych kilometrów, więc
#' ważne jest zachowanie jednolitej skali.
#'
#' Funckja abline() tworzy linię prostą y=Ax+B stąd nazawa AB Line. Domyslnie A=1, B=0 dlatego abline() to y=x

907
Kurs_R.html Normal file

File diff suppressed because one or more lines are too long