library(tidyverse)
## ── Attaching packages ───────────────────────────────────────────────────────────────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.0     ✓ purrr   0.3.3
## ✓ tibble  2.1.3     ✓ dplyr   0.8.5
## ✓ tidyr   1.0.2     ✓ stringr 1.4.0
## ✓ readr   1.3.1     ✓ forcats 0.5.0
## ── Conflicts ──────────────────────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

2.3.1

Zadanie 1

airquality %>%
  select(Ozone, Solar.R, Wind, Temp) %>%
  filter(Ozone>80)
##    Ozone Solar.R Wind Temp
## 1    115     223  5.7   79
## 2    135     269  4.1   84
## 3     97     267  6.3   92
## 4     97     272  5.7   92
## 5     85     175  7.4   89
## 6    108     223  8.0   85
## 7     82     213  7.4   88
## 8    122     255  4.0   89
## 9     89     229 10.3   90
## 10   110     207  8.0   90
## 11   168     238  3.4   81
## 12   118     225  2.3   94
## 13    84     237  6.3   96
## 14    85     188  6.3   94
## 15    96     167  6.9   91
## 16    91     189  4.6   93

Zadanie 2

#install.packages('weathermetrics')
library(weathermetrics)

airquality %>%
  mutate(TempC=fahrenheit.to.celsius(Temp))
##     Ozone Solar.R Wind Temp Month Day TempC
## 1      41     190  7.4   67     5   1 19.44
## 2      36     118  8.0   72     5   2 22.22
## 3      12     149 12.6   74     5   3 23.33
## 4      18     313 11.5   62     5   4 16.67
## 5      NA      NA 14.3   56     5   5 13.33
## 6      28      NA 14.9   66     5   6 18.89
## 7      23     299  8.6   65     5   7 18.33
## 8      19      99 13.8   59     5   8 15.00
## 9       8      19 20.1   61     5   9 16.11
## 10     NA     194  8.6   69     5  10 20.56
## 11      7      NA  6.9   74     5  11 23.33
## 12     16     256  9.7   69     5  12 20.56
## 13     11     290  9.2   66     5  13 18.89
## 14     14     274 10.9   68     5  14 20.00
## 15     18      65 13.2   58     5  15 14.44
## 16     14     334 11.5   64     5  16 17.78
## 17     34     307 12.0   66     5  17 18.89
## 18      6      78 18.4   57     5  18 13.89
## 19     30     322 11.5   68     5  19 20.00
## 20     11      44  9.7   62     5  20 16.67
## 21      1       8  9.7   59     5  21 15.00
## 22     11     320 16.6   73     5  22 22.78
## 23      4      25  9.7   61     5  23 16.11
## 24     32      92 12.0   61     5  24 16.11
## 25     NA      66 16.6   57     5  25 13.89
## 26     NA     266 14.9   58     5  26 14.44
## 27     NA      NA  8.0   57     5  27 13.89
## 28     23      13 12.0   67     5  28 19.44
## 29     45     252 14.9   81     5  29 27.22
## 30    115     223  5.7   79     5  30 26.11
## 31     37     279  7.4   76     5  31 24.44
## 32     NA     286  8.6   78     6   1 25.56
## 33     NA     287  9.7   74     6   2 23.33
## 34     NA     242 16.1   67     6   3 19.44
## 35     NA     186  9.2   84     6   4 28.89
## 36     NA     220  8.6   85     6   5 29.44
## 37     NA     264 14.3   79     6   6 26.11
## 38     29     127  9.7   82     6   7 27.78
## 39     NA     273  6.9   87     6   8 30.56
## 40     71     291 13.8   90     6   9 32.22
## 41     39     323 11.5   87     6  10 30.56
## 42     NA     259 10.9   93     6  11 33.89
## 43     NA     250  9.2   92     6  12 33.33
## 44     23     148  8.0   82     6  13 27.78
## 45     NA     332 13.8   80     6  14 26.67
## 46     NA     322 11.5   79     6  15 26.11
## 47     21     191 14.9   77     6  16 25.00
## 48     37     284 20.7   72     6  17 22.22
## 49     20      37  9.2   65     6  18 18.33
## 50     12     120 11.5   73     6  19 22.78
## 51     13     137 10.3   76     6  20 24.44
## 52     NA     150  6.3   77     6  21 25.00
## 53     NA      59  1.7   76     6  22 24.44
## 54     NA      91  4.6   76     6  23 24.44
## 55     NA     250  6.3   76     6  24 24.44
## 56     NA     135  8.0   75     6  25 23.89
## 57     NA     127  8.0   78     6  26 25.56
## 58     NA      47 10.3   73     6  27 22.78
## 59     NA      98 11.5   80     6  28 26.67
## 60     NA      31 14.9   77     6  29 25.00
## 61     NA     138  8.0   83     6  30 28.33
## 62    135     269  4.1   84     7   1 28.89
## 63     49     248  9.2   85     7   2 29.44
## 64     32     236  9.2   81     7   3 27.22
## 65     NA     101 10.9   84     7   4 28.89
## 66     64     175  4.6   83     7   5 28.33
## 67     40     314 10.9   83     7   6 28.33
## 68     77     276  5.1   88     7   7 31.11
## 69     97     267  6.3   92     7   8 33.33
## 70     97     272  5.7   92     7   9 33.33
## 71     85     175  7.4   89     7  10 31.67
## 72     NA     139  8.6   82     7  11 27.78
## 73     10     264 14.3   73     7  12 22.78
## 74     27     175 14.9   81     7  13 27.22
## 75     NA     291 14.9   91     7  14 32.78
## 76      7      48 14.3   80     7  15 26.67
## 77     48     260  6.9   81     7  16 27.22
## 78     35     274 10.3   82     7  17 27.78
## 79     61     285  6.3   84     7  18 28.89
## 80     79     187  5.1   87     7  19 30.56
## 81     63     220 11.5   85     7  20 29.44
## 82     16       7  6.9   74     7  21 23.33
## 83     NA     258  9.7   81     7  22 27.22
## 84     NA     295 11.5   82     7  23 27.78
## 85     80     294  8.6   86     7  24 30.00
## 86    108     223  8.0   85     7  25 29.44
## 87     20      81  8.6   82     7  26 27.78
## 88     52      82 12.0   86     7  27 30.00
## 89     82     213  7.4   88     7  28 31.11
## 90     50     275  7.4   86     7  29 30.00
## 91     64     253  7.4   83     7  30 28.33
## 92     59     254  9.2   81     7  31 27.22
## 93     39      83  6.9   81     8   1 27.22
## 94      9      24 13.8   81     8   2 27.22
## 95     16      77  7.4   82     8   3 27.78
## 96     78      NA  6.9   86     8   4 30.00
## 97     35      NA  7.4   85     8   5 29.44
## 98     66      NA  4.6   87     8   6 30.56
## 99    122     255  4.0   89     8   7 31.67
## 100    89     229 10.3   90     8   8 32.22
## 101   110     207  8.0   90     8   9 32.22
## 102    NA     222  8.6   92     8  10 33.33
## 103    NA     137 11.5   86     8  11 30.00
## 104    44     192 11.5   86     8  12 30.00
## 105    28     273 11.5   82     8  13 27.78
## 106    65     157  9.7   80     8  14 26.67
## 107    NA      64 11.5   79     8  15 26.11
## 108    22      71 10.3   77     8  16 25.00
## 109    59      51  6.3   79     8  17 26.11
## 110    23     115  7.4   76     8  18 24.44
## 111    31     244 10.9   78     8  19 25.56
## 112    44     190 10.3   78     8  20 25.56
## 113    21     259 15.5   77     8  21 25.00
## 114     9      36 14.3   72     8  22 22.22
## 115    NA     255 12.6   75     8  23 23.89
## 116    45     212  9.7   79     8  24 26.11
## 117   168     238  3.4   81     8  25 27.22
## 118    73     215  8.0   86     8  26 30.00
## 119    NA     153  5.7   88     8  27 31.11
## 120    76     203  9.7   97     8  28 36.11
## 121   118     225  2.3   94     8  29 34.44
## 122    84     237  6.3   96     8  30 35.56
## 123    85     188  6.3   94     8  31 34.44
## 124    96     167  6.9   91     9   1 32.78
## 125    78     197  5.1   92     9   2 33.33
## 126    73     183  2.8   93     9   3 33.89
## 127    91     189  4.6   93     9   4 33.89
## 128    47      95  7.4   87     9   5 30.56
## 129    32      92 15.5   84     9   6 28.89
## 130    20     252 10.9   80     9   7 26.67
## 131    23     220 10.3   78     9   8 25.56
## 132    21     230 10.9   75     9   9 23.89
## 133    24     259  9.7   73     9  10 22.78
## 134    44     236 14.9   81     9  11 27.22
## 135    21     259 15.5   76     9  12 24.44
## 136    28     238  6.3   77     9  13 25.00
## 137     9      24 10.9   71     9  14 21.67
## 138    13     112 11.5   71     9  15 21.67
## 139    46     237  6.9   78     9  16 25.56
## 140    18     224 13.8   67     9  17 19.44
## 141    13      27 10.3   76     9  18 24.44
## 142    24     238 10.3   68     9  19 20.00
## 143    16     201  8.0   82     9  20 27.78
## 144    13     238 12.6   64     9  21 17.78
## 145    23      14  9.2   71     9  22 21.67
## 146    36     139 10.3   81     9  23 27.22
## 147     7      49 10.3   69     9  24 20.56
## 148    14      20 16.6   63     9  25 17.22
## 149    30     193  6.9   70     9  26 21.11
## 150    NA     145 13.2   77     9  27 25.00
## 151    14     191 14.3   75     9  28 23.89
## 152    18     131  8.0   76     9  29 24.44
## 153    20     223 11.5   68     9  30 20.00

2.4.1

Zadanie 1

as_tibble(airquality)
## # A tibble: 153 x 6
##    Ozone Solar.R  Wind  Temp Month   Day
##    <int>   <int> <dbl> <int> <int> <int>
##  1    41     190   7.4    67     5     1
##  2    36     118   8      72     5     2
##  3    12     149  12.6    74     5     3
##  4    18     313  11.5    62     5     4
##  5    NA      NA  14.3    56     5     5
##  6    28      NA  14.9    66     5     6
##  7    23     299   8.6    65     5     7
##  8    19      99  13.8    59     5     8
##  9     8      19  20.1    61     5     9
## 10    NA     194   8.6    69     5    10
## # … with 143 more rows

Zadanie 2

tibble(litery=letters[6:11],
            miesiace=month.name[1:6])
## # A tibble: 6 x 2
##   litery miesiace
##   <chr>  <chr>   
## 1 f      January 
## 2 g      February
## 3 h      March   
## 4 i      April   
## 5 j      May     
## 6 k      June

3.2.4

Zadanie 1

ggplot(data=mpg)

Co widzisz? Szare. puste pole ## Zadanie 2

as_tibble(mtcars)
## # A tibble: 32 x 11
##      mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
##    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
##  1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
##  2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
##  3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
##  4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
##  5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
##  6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
##  7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
##  8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
##  9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
## 10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
## # … with 22 more rows

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
## # A tibble: 234 x 11
##    manufacturer model    displ  year   cyl trans   drv     cty   hwy fl    class
##    <chr>        <chr>    <dbl> <int> <int> <chr>   <chr> <int> <int> <chr> <chr>
##  1 audi         a4         1.8  1999     4 auto(l… f        18    29 p     comp…
##  2 audi         a4         1.8  1999     4 manual… f        21    29 p     comp…
##  3 audi         a4         2    2008     4 manual… f        20    31 p     comp…
##  4 audi         a4         2    2008     4 auto(a… f        21    30 p     comp…
##  5 audi         a4         2.8  1999     6 auto(l… f        16    26 p     comp…
##  6 audi         a4         2.8  1999     6 manual… f        18    26 p     comp…
##  7 audi         a4         3.1  2008     6 auto(a… f        18    27 p     comp…
##  8 audi         a4 quat…   1.8  1999     4 manual… 4        18    26 p     comp…
##  9 audi         a4 quat…   1.8  1999     4 auto(l… 4        16    25 p     comp…
## 10 audi         a4 quat…   2    2008     4 manual… 4        20    28 p     comp…
## # … with 224 more rows

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 , 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)
## # A tibble: 196 x 12
##    manufacturer model displ  year   cyl trans drv     cty   hwy fl    class
##    <chr>        <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
##  1 audi         a4      1.8  1999     4 auto… f        18    29 p     comp…
##  2 audi         a4      1.8  1999     4 manu… f        21    29 p     comp…
##  3 audi         a4      2    2008     4 manu… f        20    31 p     comp…
##  4 audi         a4      2    2008     4 auto… f        21    30 p     comp…
##  5 audi         a4      2.8  1999     6 auto… f        16    26 p     comp…
##  6 audi         a4      2.8  1999     6 manu… f        18    26 p     comp…
##  7 audi         a4      3.1  2008     6 auto… f        18    27 p     comp…
##  8 audi         a4 q…   1.8  1999     4 manu… 4        18    26 p     comp…
##  9 audi         a4 q…   1.8  1999     4 auto… 4        16    25 p     comp…
## 10 audi         a4 q…   2    2008     4 manu… 4        20    28 p     comp…
## # … with 186 more rows, and 1 more variable: is_less_than_5 <lgl>

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)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

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()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

ggplot() + 
  geom_point(data = mpg, mapping = aes(x = displ, y = hwy)) + 
  geom_smooth(data = mpg, mapping = aes(x = displ, y = hwy))
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Zadanie 6

Wykres 1

mpg %>% 
  ggplot(aes(x=displ, y=hwy)) +
  geom_point() +
  geom_smooth(se=FALSE)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Wykres 2

mpg %>% 
  ggplot(aes(x=displ, y=hwy, group=drv)) +
  geom_point() +
  geom_smooth(se=FALSE)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Wykres 3

mpg %>% 
  ggplot(aes(x=displ, y=hwy, color=drv)) +
  geom_point() +
  geom_smooth(se=FALSE)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Wykres 4

mpg %>% 
  ggplot(aes(x=displ, y=hwy)) +
  geom_point(aes(color=drv)) +
  geom_smooth(se=FALSE)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

Wykres 5

mpg %>% 
  ggplot(aes(x=displ, y=hwy)) +
  geom_point(aes(color=drv)) +
  geom_smooth(aes(linetype=drv), se=FALSE)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

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')
## No summary function supplied, defaulting to `mean_se()`

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()