gapminder[1,]
gapminder[,1]
gapminder[3, 4]
gapminder[, -1]
gapminder[, c(2,3)]
gapminder[gapminder$year == 1952, ]
gapminder[gapminder$year == 1952 & gapminder$continent=='Asia',]
gapminder[gapminder$year == 1952, c(5)]
gapminder[gapminder$pop > 10000000, ]
gapminder[gapminder$continent != 'Asia',]
gapminder[gapminder$continent %in% c('Asia', 'Africa'),]
Używając indeksowania wybierz ze zbioru danych gapminder: 1) dane dla kontynentu Europa; 2) dane dla kontynentu Azja (Asia); ogranicz wybór tylko do kolumn pop oraz lifeExp. 3) obserwacje, dla których oczekiwana długość trwania życia przekroczyła 75 lat; 4) dane dla lat 1952 oraz 2007.
dplyr
Operacja | Funkcja |
---|---|
Tworzenie podzbioru danych: wiersze | filter() |
Tworzenie podzbioru danych: kolumny | select() |
Tworzenie nowych zmiennych | mutate() |
Sortowanie | arrange() |
Zmiana nazw kolumn | rename() |
Statystyki podstaowe | summarize() |
Grupowanie | group_by() |
select()
)## # A tibble: 6 x 3
## country year pop
## <fct> <int> <int>
## 1 Afghanistan 1952 8425333
## 2 Afghanistan 1957 9240934
## 3 Afghanistan 1962 10267083
## 4 Afghanistan 1967 11537966
## 5 Afghanistan 1972 13079460
## 6 Afghanistan 1977 14880372
Ze zbioru danych gapminder proszę wybrać dane dla zmiennych country, year oraz lifeExp.
## # A tibble: 6 x 5
## country year lifeExp pop gdpPercap
## <fct> <int> <dbl> <int> <dbl>
## 1 Afghanistan 1952 28.8 8425333 779.
## 2 Afghanistan 1957 30.3 9240934 821.
## 3 Afghanistan 1962 32.0 10267083 853.
## 4 Afghanistan 1967 34.0 11537966 836.
## 5 Afghanistan 1972 36.1 13079460 740.
## 6 Afghanistan 1977 38.4 14880372 786.
Ze zbioru danych gapminder proszę wybrać wszystkie kolumny z wyjątkiem continent oraz gdpPercap.
filter()
)Funkcja filter()
pozwala na wybór obserwacji spełniających określone warunki. Warunki są określane za pomocą operatorów logicznych (!=, ==, >, <, >=, <=, |, &).
## # A tibble: 6 x 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Afghanistan Asia 2007 43.8 31889923 975.
## 2 Albania Europe 2007 76.4 3600523 5937.
## 3 Algeria Africa 2007 72.3 33333216 6223.
## 4 Angola Africa 2007 42.7 12420476 4797.
## 5 Argentina Americas 2007 75.3 40301927 12779.
## 6 Australia Oceania 2007 81.2 20434176 34435.
Wybierz dane dla kontynentu Europa.
W jaki inny sposób można wybrać dane dla roku 2007?
## # A tibble: 13 x 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Australia Oceania 2007 81.2 20434176 34435.
## 2 Canada Americas 2007 80.7 33390141 36319.
## 3 France Europe 2007 80.7 61083916 30470.
## 4 Hong Kong, China Asia 2007 82.2 6980412 39725.
## 5 Iceland Europe 2007 81.8 301931 36181.
## 6 Israel Asia 2007 80.7 6426679 25523.
## 7 Italy Europe 2007 80.5 58147733 28570.
## 8 Japan Asia 2007 82.6 127467972 31656.
## 9 New Zealand Oceania 2007 80.2 4115771 25185.
## 10 Norway Europe 2007 80.2 4627926 49357.
## 11 Spain Europe 2007 80.9 40448191 28821.
## 12 Sweden Europe 2007 80.9 9031088 33860.
## 13 Switzerland Europe 2007 81.7 7554661 37506.
Wybór danych dla roku 2007, dla wszystkich kontynentów z wyjątkiem Azji, w których oczekiwana długość trwania życia przekracza 80 lat.
mutate()
)## # A tibble: 6 x 7
## country continent year lifeExp pop gdpPercap abbr_country
## <fct> <fct> <int> <dbl> <int> <dbl> <chr>
## 1 Afghanistan Asia 1952 28.8 8425333 779. AFG
## 2 Afghanistan Asia 1957 30.3 9240934 821. AFG
## 3 Afghanistan Asia 1962 32.0 10267083 853. AFG
## 4 Afghanistan Asia 1967 34.0 11537966 836. AFG
## 5 Afghanistan Asia 1972 36.1 13079460 740. AFG
## 6 Afghanistan Asia 1977 38.4 14880372 786. AFG
Co w powyższym poleceniu robi funkcja
substr()
oraztoupper()
?
Dodaj do zbioru danych kolumnę pop_mln zawierająca liczbę ludności w milionach.
## # A tibble: 6 x 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Rwanda Africa 1992 23.6 7290203 737.
## 2 Afghanistan Asia 1952 28.8 8425333 779.
## 3 Gambia Africa 1952 30 284320 485.
## 4 Angola Africa 1952 30.0 4232095 3521.
## 5 Sierra Leone Africa 1952 30.3 2143249 880.
## 6 Afghanistan Asia 1957 30.3 9240934 821.
## # A tibble: 6 x 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Japan Asia 2007 82.6 127467972 31656.
## 2 Hong Kong, China Asia 2007 82.2 6980412 39725.
## 3 Japan Asia 2002 82 127065841 28605.
## 4 Iceland Europe 2007 81.8 301931 36181.
## 5 Switzerland Europe 2007 81.7 7554661 37506.
## 6 Hong Kong, China Asia 2002 81.5 6762476 30209.
Posortuj dane malejąco względem zmiennej pop.
## # A tibble: 6 x 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Rwanda Africa 1992 23.6 7290203 737.
## 2 Gambia Africa 1952 30 284320 485.
## 3 Angola Africa 1952 30.0 4232095 3521.
## 4 Sierra Leone Africa 1952 30.3 2143249 880.
## 5 Mozambique Africa 1952 31.3 6446316 469.
## 6 Sierra Leone Africa 1957 31.6 2295678 1004.
Posortuj malejąco względem nazwy państwa oraz rosnąco względem liczby ludności.
W funkcji rename()
definiujemy nowa_nazwa = stara_nazwa.
gap2 <- rename(gapminder, panstwo = country, kontynent = continent, rok = year, dlugosc_zycia = lifeExp, ludnosc = pop, PKB = gdpPercap)
names(gap2)
## [1] "panstwo" "kontynent" "rok" "dlugosc_zycia"
## [5] "ludnosc" "PKB"
Korzystając ze strony pomocy funkcji
rename()
sprawdź jak w zmienić nazwy kolumn w obiekcie gap2 na drukowane litery.
Funkcja summarize()
służy do wykonywania podsumowań statystycznych. Tworzy kolumny z zadanymi statystykami.
## # A tibble: 1 x 1
## srednia
## <dbl>
## 1 59.5
## # A tibble: 1 x 3
## srednia min max
## <dbl> <dbl> <dbl>
## 1 59.5 23.6 82.6
Oblicz średnią oraz odchylenie standardowe dla gdpPercap.
Obliczenie statystyk w grupach wymaga najpierw pogrupowania danych (funkcja group_by()
).
gapminder2007 <- filter(gapminder, year == 2007)
by_continent <- group_by(gapminder2007, continent)
smr_by_continent <- summarize(by_continent,
mean_le = mean(lifeExp))
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 5 x 2
## continent mean_le
## <fct> <dbl>
## 1 Africa 54.8
## 2 Americas 73.6
## 3 Asia 70.7
## 4 Europe 77.6
## 5 Oceania 80.7
Oblicz średnią oczekiwaną długość trwania życia w poszczególnych latach.
by_continent_year <- group_by(gapminder, continent, year)
smr_by_continent_year <- summarize(by_continent_year,
mean_le = mean(lifeExp))
## `summarise()` regrouping output by 'continent' (override with `.groups` argument)
## # A tibble: 60 x 3
## # Groups: continent [5]
## continent year mean_le
## <fct> <int> <dbl>
## 1 Africa 1952 39.1
## 2 Africa 1957 41.3
## 3 Africa 1962 43.3
## 4 Africa 1967 45.3
## 5 Africa 1972 47.5
## 6 Africa 1977 49.6
## 7 Africa 1982 51.6
## 8 Africa 1987 53.3
## 9 Africa 1992 53.6
## 10 Africa 1997 53.6
## # … with 50 more rows
Zmiana układu danych jest możliwa z użyciem funkcji z pakietu tidyr
.
Przykładem danych zapisanych w układzie długim są dane przypisane do obiektu smr_long. Składają się one z 3 kolumn. Zawierają one średnią oczekiwaną długość trwania życia według poszczególnych kontynentów oraz lat.
by_continent_year <- group_by(gapminder, continent, year)
smr_long <- summarize(by_continent_year,
mean_le = mean(lifeExp))
## `summarise()` regrouping output by 'continent' (override with `.groups` argument)
## # A tibble: 6 x 3
## # Groups: continent [1]
## continent year mean_le
## <fct> <int> <dbl>
## 1 Africa 1952 39.1
## 2 Africa 1957 41.3
## 3 Africa 1962 43.3
## 4 Africa 1967 45.3
## 5 Africa 1972 47.5
## 6 Africa 1977 49.6
W formacie szerokim każdy wiersz to osobny kontynent a każda kolumna to rok.
## # A tibble: 5 x 13
## # Groups: continent [5]
## continent `1952` `1957` `1962` `1967` `1972` `1977` `1982` `1987` `1992`
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Africa 39.1 41.3 43.3 45.3 47.5 49.6 51.6 53.3 53.6
## 2 Americas 53.3 56.0 58.4 60.4 62.4 64.4 66.2 68.1 69.6
## 3 Asia 46.3 49.3 51.6 54.7 57.3 59.6 62.6 64.9 66.5
## 4 Europe 64.4 66.7 68.5 69.7 70.8 71.9 72.8 73.6 74.4
## 5 Oceania 69.3 70.3 71.1 71.3 71.9 72.9 74.3 75.3 76.9
## # … with 3 more variables: `1997` <dbl>, `2002` <dbl>, `2007` <dbl>
Oblicz średnią oczekiwaną długość trwania życia w poszczególnych latach i przedstaw wynik w układzie szerokim.
## Note: Using an external vector in selections is ambiguous.
## ℹ Use `all_of(nms)` instead of `nms` to silence this message.
## ℹ See <https://tidyselect.r-lib.org/reference/faq-external-vector.html>.
## This message is displayed once per session.
## # A tibble: 6 x 3
## # Groups: continent [1]
## continent name value
## <fct> <chr> <dbl>
## 1 Africa 1952 39.1
## 2 Africa 1957 41.3
## 3 Africa 1962 43.3
## 4 Africa 1967 45.3
## 5 Africa 1972 47.5
## 6 Africa 1977 49.6
Oblicz średnią wartość gdpPercap w podziale na poszczególne kontynenty oraz lata. Przedstaw wynik w “układzie szerokim” - każdy wiersz to określony kontynent, a każda kolumna to określony rok.
Pakiet nycflights13 zawiera dane dotyczące wszystkich lotów, jakie miały miejsce w 2013 roku z jednego z 3 nowojorskich lotnisk: JFK, EWR oraz LGA. Do wykonania zadania należy wykorzystać dane zawarte w zbiorze danych flights. Zbiór danych flights z pakietu nycflights13 zawiera następujące informacje:
Objaśnienia do zmiennej carrier: