16.3 Další užitečné funkce z balíku dplyr
Balík dplyr obsahuje opravdu velmi mnoho funkcí, které pracují nad jednou tabulkou. V této kapitole je představen lehký výběr těch, které se v praxi datové analýzy používají opravdu často.
Funkce distinct()
je ekvivalentem unique()
– vrací tabulku, která obsahuje pouze unikátní pozorování. V případě shody více řádků zachovává v nové tabulce první z nich. Proti unique()
je rychlejší a hlavně umožňuje specifikovat sloupce, podle kterých se má unikátnost pozorování posuzovat:
%>%
planes distinct(manufacturer, type)
## # A tibble: 37 × 2
## type manufacturer
## <chr> <chr>
## 1 Fixed wing multi engine EMBRAER
## 2 Fixed wing multi engine AIRBUS INDUSTRIE
## 3 Fixed wing multi engine BOEING
## 4 Fixed wing multi engine AIRBUS
## 5 Fixed wing multi engine BOMBARDIER INC
## 6 Fixed wing single engine CESSNA
## 7 Fixed wing multi engine CESSNA
## 8 Fixed wing single engine JOHN G HESS
## 9 Fixed wing multi engine GULFSTREAM AEROSPACE
## 10 Rotorcraft SIKORSKY
## # … with 27 more rows
V základním nastavení je výstupní tabulka omezena pouze na proměnné, které byly použity k posouzení unikátnosti. Toto chování se dá změnit pomocí parametru .keep_all
:
%>%
planes distinct(manufacturer, type, .keep_all = TRUE)
## # A tibble: 37 × 9
## tailnum year type manufacturer model engines seats speed engine
## <chr> <int> <chr> <chr> <chr> <int> <int> <int> <chr>
## 1 N10156 2004 Fixed wing… EMBRAER EMB-1… 2 55 NA Turbo-f…
## 2 N102UW 1998 Fixed wing… AIRBUS INDUSTR… A320-… 2 182 NA Turbo-f…
## 3 N11206 2000 Fixed wing… BOEING 737-8… 2 149 NA Turbo-f…
## 4 N125UW 2009 Fixed wing… AIRBUS A320-… 2 182 NA Turbo-f…
## 5 N131EV 2009 Fixed wing… BOMBARDIER INC CL-60… 2 95 NA Turbo-f…
## 6 N201AA 1959 Fixed wing… CESSNA 150 1 2 90 Recipro…
## 7 N202AA 1980 Fixed wing… CESSNA 421C 2 8 90 Recipro…
## 8 N315AT NA Fixed wing… JOHN G HESS AT-5 1 2 NA 4 Cycle
## 9 N344AA 1992 Fixed wing… GULFSTREAM AER… G-IV 2 22 NA Turbo-f…
## 10 N347AA 1985 Rotorcraft SIKORSKY S-76A 2 14 NA Turbo-s…
## # … with 27 more rows
Užitečnou funkcí je řazení pozorování. To má v dplyr na starosti funkce arrange()
. arrange()
přijímá jako parametry vstupní tabulku a jména sloupců, podle kterých má tabulku seřadit:
%>%
planes arrange(manufacturer,engines)
## # A tibble: 3,322 × 9
## tailnum year type manufacturer model engines seats speed engine
## <chr> <int> <chr> <chr> <chr> <int> <int> <int> <chr>
## 1 N365AA 2001 Rotorcraft AGUSTA SPA A109E 2 8 NA Turbo-s…
## 2 N125UW 2009 Fixed wing mu… AIRBUS A320-… 2 182 NA Turbo-f…
## 3 N126UW 2009 Fixed wing mu… AIRBUS A320-… 2 182 NA Turbo-f…
## 4 N127UW 2010 Fixed wing mu… AIRBUS A320-… 2 182 NA Turbo-f…
## 5 N128UW 2010 Fixed wing mu… AIRBUS A320-… 2 182 NA Turbo-f…
## 6 N150UW 2013 Fixed wing mu… AIRBUS A321-… 2 199 NA Turbo-f…
## 7 N151UW 2013 Fixed wing mu… AIRBUS A321-… 2 199 NA Turbo-f…
## 8 N152UW 2013 Fixed wing mu… AIRBUS A321-… 2 199 NA Turbo-f…
## 9 N153UW 2013 Fixed wing mu… AIRBUS A321-… 2 199 NA Turbo-f…
## 10 N154UW 2013 Fixed wing mu… AIRBUS A321-… 2 199 NA Turbo-f…
## # … with 3,312 more rows
arrange()
nejprve řadí tabulku podle první zadaného sloupce, následně podle druhého, atp. Směr řazení je možné změnit pomocí speciální funkce desc()
:
%>%
planes arrange(desc(manufacturer),engines)
## # A tibble: 3,322 × 9
## tailnum year type manufacturer model engines seats speed engine
## <chr> <int> <chr> <chr> <chr> <int> <int> <int> <chr>
## 1 N397AA 1985 Fixed wing… STEWART MACO FALCO… 1 2 NA Recipro…
## 2 N521AA NA Fixed wing… STEWART MACO FALCO… 1 2 NA Recipro…
## 3 N347AA 1985 Rotorcraft SIKORSKY S-76A 2 14 NA Turbo-s…
## 4 N537JB 2012 Rotorcraft ROBINSON HELIC… R66 1 5 NA Turbo-s…
## 5 N376AA 1978 Fixed wing… PIPER PA-32… 1 7 NA Recipro…
## 6 N425AA 1968 Fixed wing… PIPER PA-28… 1 4 107 Recipro…
## 7 N545AA 1976 Fixed wing… PIPER PA-32… 1 7 126 Recipro…
## 8 N350AA 1980 Fixed wing… PIPER PA-31… 2 8 162 Recipro…
## 9 N525AA 1980 Fixed wing… PIPER PA-31… 2 8 162 Recipro…
## 10 N377AA NA Fixed wing… PAIR MIKE E FALCO… 1 2 NA Recipro…
## # … with 3,312 more rows