Zrobiony Rozdział 3
This commit is contained in:
parent
a011846a02
commit
8ea82f37dc
503
Kurs_R.R
503
Kurs_R.R
@ -1,150 +1,353 @@
|
||||
library(tidyverse)
|
||||
|
||||
# 2.3.1
|
||||
# Zadanie 1
|
||||
|
||||
airquality %>%
|
||||
select(Ozone, Solar.R, Wind, Temp) %>%
|
||||
filter(Ozone>80)
|
||||
|
||||
# Zadanie 2
|
||||
install.packages('weathermetrics')
|
||||
library(weathermetrics)
|
||||
|
||||
airquality %>%
|
||||
mutate(TempC=fahrenheit.to.celsius(Temp))
|
||||
|
||||
# 2.4.1
|
||||
# Zadanie 1
|
||||
as_tibble(airquality)
|
||||
|
||||
# Zadanie 2
|
||||
tibble(litery=letters[6:11],
|
||||
miesiace=month.name[1:6])
|
||||
|
||||
# 3.2.4
|
||||
# Zadanie 1
|
||||
ggplot(data=mpg)
|
||||
|
||||
# Co widzisz?
|
||||
# Szare. puste pole
|
||||
|
||||
# Zadanie 2
|
||||
as_tibble(mtcars)
|
||||
|
||||
# liczba wierszy: 32
|
||||
|
||||
# Zadanie 3
|
||||
?mpg
|
||||
|
||||
# drv
|
||||
# f = front-wheel drive, r = rear wheel drive, 4 = 4wd
|
||||
|
||||
# Zadanie 4
|
||||
ggplot(aes(x=hwy, y=cyl), data=as_tibble(mpg)) + geom_point()
|
||||
|
||||
# Zadanie 5
|
||||
ggplot(aes(x=class, y=drv), data=as_tibble(mpg)) + geom_point()
|
||||
|
||||
# Dlaczego wykres jest bezuzyteczny?
|
||||
# Wykres nie pokazuje żadnych liczbowych informacji na temat danych
|
||||
# Zostały wykorzystane dwie cechy typu categorical
|
||||
# Jedyną informacją jest to, czy dana kombinacja drv i class istanieje.
|
||||
|
||||
# 3.3.1
|
||||
# Zadanie 1
|
||||
|
||||
# ustalenie parametru color wewnątrz funckcji aes
|
||||
# powinno być nazwą kolumny z categoriami, po których
|
||||
# punkty zostaną pogrupowane, a nie istanieje kolumna "blue"
|
||||
# w zbriorze danych
|
||||
|
||||
# parametr color powinien zostać ustalony wewnątrz
|
||||
# funkcji geom_point. Poprawiony kod poniżej.
|
||||
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = displ, y = hwy), color = "blue")
|
||||
|
||||
# Zadanie 2
|
||||
mpg
|
||||
# kolumny z danymi kategorialnymi to:
|
||||
# manufacturer, model, trans, frv, fl, class
|
||||
# można zwrócić uwagę na typ danych w kolumnie
|
||||
# jeśli typ to <chr>, to najprawdopodobniej jest to dana kategorialna
|
||||
|
||||
# Zadanie 3
|
||||
|
||||
ggplot(data = mpg) +
|
||||
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
|
||||
# tak jak samo z rozmiarem, rozmiar jest skalowany
|
||||
# w przypadku shape powoduje to błąd. Gdyby podać dane kategorialne
|
||||
# podział byłby dyskretny, na różne kolory, wielkości, kształty
|
||||
|
||||
|
||||
# Zadanie 4
|
||||
# Przykład w punkcie wyżej
|
||||
# Ta sama zmienna bedzie przedstawiona różnymi metodami
|
||||
|
||||
# Zadanie 5
|
||||
# stroke wpływa na grubuść konturu, obrysu, mozna sposować z punktami i liniami
|
||||
?geom_point
|
||||
|
||||
# Zadanie 6
|
||||
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x=displ, y=hwy, color=displ < 5))
|
||||
|
||||
|
||||
mpg %>%
|
||||
filter(displ < 5) %>%
|
||||
mutate(is_less_than_5=displ < 5)
|
||||
|
||||
# Przypisanie displ < 5 podzieliło data set na dwie grupy
|
||||
# TRUE oraz FALSE, w zalezności od tego czy warunek był spełniony
|
||||
# czy nie.
|
||||
|
||||
# 3.5.1
|
||||
# Zadanie 1
|
||||
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = displ, y = hwy)) +
|
||||
facet_grid(drv ~ displ)
|
||||
|
||||
# ggplot potraktuje ją jako zmienną kategorialną,
|
||||
# tworząc siatkę dla kazdej unikatowej wartości zmiennej ciagłęj
|
||||
|
||||
# Zadanie 2
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = drv, y = cyl))
|
||||
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = drv, y = cyl)) +
|
||||
facet_grid(cyl~drv)
|
||||
|
||||
# puste komórki oznacznaczają brak danych
|
||||
|
||||
# Zadanie 3
|
||||
|
||||
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = displ, y = hwy)) +
|
||||
facet_grid(drv ~ .)
|
||||
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = displ, y = hwy)) +
|
||||
facet_grid(. ~ cyl)
|
||||
|
||||
# kropka traktowana jest jako puste pole,
|
||||
# wtedy jedna z osi, nie bedzie kategoryzowana
|
||||
|
||||
|
||||
# Zadanie 4
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = displ, y = hwy)) +
|
||||
facet_wrap(~ class, nrow = 2)
|
||||
|
||||
|
||||
|
||||
|
||||
library(tidyverse)
|
||||
|
||||
#' # 2.3.1
|
||||
#' ## Zadanie 1
|
||||
|
||||
airquality %>%
|
||||
select(Ozone, Solar.R, Wind, Temp) %>%
|
||||
filter(Ozone>80)
|
||||
|
||||
#' ## Zadanie 2
|
||||
#install.packages('weathermetrics')
|
||||
library(weathermetrics)
|
||||
|
||||
airquality %>%
|
||||
mutate(TempC=fahrenheit.to.celsius(Temp))
|
||||
|
||||
#' # 2.4.1
|
||||
#' ## Zadanie 1
|
||||
as_tibble(airquality)
|
||||
|
||||
#' ## Zadanie 2
|
||||
tibble(litery=letters[6:11],
|
||||
miesiace=month.name[1:6])
|
||||
|
||||
#' # 3.2.4
|
||||
#' ## Zadanie 1
|
||||
ggplot(data=mpg)
|
||||
|
||||
#' Co widzisz?
|
||||
#' Szare. puste pole
|
||||
|
||||
#' ## Zadanie 2
|
||||
as_tibble(mtcars)
|
||||
|
||||
#' liczba wierszy: 32
|
||||
|
||||
#' ## Zadanie 3
|
||||
?mpg
|
||||
|
||||
#' drv
|
||||
#' f = front-wheel drive, r = rear wheel drive, 4 = 4wd
|
||||
|
||||
#' ## Zadanie 4
|
||||
ggplot(aes(x=hwy, y=cyl), data=as_tibble(mpg)) + geom_point()
|
||||
|
||||
#' ## Zadanie 5
|
||||
ggplot(aes(x=class, y=drv), data=as_tibble(mpg)) + geom_point()
|
||||
|
||||
#' Dlaczego wykres jest bezuzyteczny?
|
||||
#' Wykres nie pokazuje żadnych liczbowych informacji na temat danych
|
||||
#' Zostały wykorzystane dwie cechy typu categorical
|
||||
#' Jedyną informacją jest to, czy dana kombinacja drv i class istanieje.
|
||||
|
||||
#' # 3.3.1
|
||||
#' ## Zadanie 1
|
||||
|
||||
#' ustalenie parametru color wewnątrz funckcji aes
|
||||
#' powinno być nazwą kolumny z categoriami, po których
|
||||
#' punkty zostaną pogrupowane, a nie istanieje kolumna "blue"
|
||||
#' w zbriorze danych
|
||||
#'
|
||||
#' parametr color powinien zostać ustalony wewnątrz
|
||||
#' funkcji geom_point. Poprawiony kod poniżej.
|
||||
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = displ, y = hwy), color = "blue")
|
||||
|
||||
#' ## Zadanie 2
|
||||
mpg
|
||||
#' kolumny z danymi kategorialnymi to:
|
||||
#' manufacturer, model, trans, frv, fl, class
|
||||
#' można zwrócić uwagę na typ danych w kolumnie
|
||||
#' jeśli typ to <chr>, to najprawdopodobniej jest to dana kategorialna
|
||||
|
||||
#' ## Zadanie 3
|
||||
|
||||
ggplot(data = mpg) +
|
||||
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
|
||||
#' tak jak samo z rozmiarem, rozmiar jest skalowany
|
||||
#' w przypadku shape powoduje to błąd. Gdyby podać dane kategorialne
|
||||
#' podział byłby dyskretny, na różne kolory, wielkości, kształty
|
||||
|
||||
|
||||
#' ## Zadanie 4
|
||||
#' Przykład w punkcie wyżej
|
||||
#' Ta sama zmienna bedzie przedstawiona różnymi metodami
|
||||
|
||||
#' ## Zadanie 5
|
||||
#' stroke wpływa na grubuść konturu, obrysu, mozna stosować z punktami i liniami
|
||||
?geom_point
|
||||
|
||||
#' ## Zadanie 6
|
||||
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x=displ, y=hwy, color=displ < 5))
|
||||
|
||||
|
||||
mpg %>%
|
||||
filter(displ < 5) %>%
|
||||
mutate(is_less_than_5=displ < 5)
|
||||
|
||||
#' Przypisanie displ < 5 podzieliło data set na dwie grupy
|
||||
#' TRUE oraz FALSE, w zalezności od tego czy warunek był spełniony
|
||||
#' czy nie.
|
||||
|
||||
#' # 3.5.1
|
||||
#' ## Zadanie 1
|
||||
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = displ, y = hwy)) +
|
||||
facet_grid(drv ~ displ)
|
||||
|
||||
#' ggplot potraktuje ją jako zmienną kategorialną,
|
||||
#' tworząc siatkę dla kazdej unikatowej wartości zmiennej ciagłęj
|
||||
|
||||
#' ## Zadanie 2
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = drv, y = cyl))
|
||||
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = drv, y = cyl)) +
|
||||
facet_grid(cyl~drv)
|
||||
|
||||
#' puste komórki oznacznaczają brak danych
|
||||
|
||||
#' ## Zadanie 3
|
||||
|
||||
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = displ, y = hwy)) +
|
||||
facet_grid(drv ~ .)
|
||||
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = displ, y = hwy)) +
|
||||
facet_grid(. ~ cyl)
|
||||
|
||||
#' kropka traktowana jest jako puste pole,
|
||||
#' wtedy jedna z osi, nie bedzie kategoryzowana
|
||||
|
||||
|
||||
#' ## Zadanie 4
|
||||
ggplot(data = mpg) +
|
||||
geom_point(mapping = aes(x = displ, y = hwy)) +
|
||||
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
907
Kurs_R.html
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user