16.1 Slovesa pracující s jednou tabulkou

16.1.1 Výběr řádků (pozorování)

Základní funkcí, která umožňuje výběr řádků je filter(). Podobně jako většina funkcí z balíku dplyr má extrémně jednoduchou syntax:

filter(.data, ...)

Vstupem funkce je tabulka (.data) a jeden nebo více logických predikátů. Výstupem funkce je podmnožina řádků, která splňuje všechny zadané predikáty.

Například se můžeme chtít podívat na letadla, která vyrobil Airbus nebo Boeing a mají více než dva motory:

planes %>% 
    filter(manufacturer %in% c("AIRBUS INDUSTRIE","BOEING"), engines > 2)
## # A tibble: 2 × 9
##   tailnum  year type           manufacturer   model  engines seats speed engine 
##   <chr>   <int> <chr>          <chr>          <chr>    <int> <int> <int> <chr>  
## 1 N281AT     NA Fixed wing mu… AIRBUS INDUST… A340-…       4   375    NA Turbo-…
## 2 N670US   1990 Fixed wing mu… BOEING         747-4…       4   450    NA Turbo-…

Vybrány byly pouze řádky splňující všechny podmínky najednou. Následující volání filter(), které spojuje dvě výše použité podmínky do jedné logickým AND (&) proto vrátí stejný výsledek:

planes %>% 
    filter(manufacturer %in% c("AIRBUS INDUSTRIE","BOEING") & engines > 2)
## # A tibble: 2 × 9
##   tailnum  year type           manufacturer   model  engines seats speed engine 
##   <chr>   <int> <chr>          <chr>          <chr>    <int> <int> <int> <chr>  
## 1 N281AT     NA Fixed wing mu… AIRBUS INDUST… A340-…       4   375    NA Turbo-…
## 2 N670US   1990 Fixed wing mu… BOEING         747-4…       4   450    NA Turbo-…

Podmínky použité ve funkci filter() musí po vyhodnocení vracet logické hodnoty TRUE/FALSE. Ve filter() tedy můžeme používat funkce, které vracejí logickou hodnotu.

Například nás mohou zajímat všechna letadla z rodiny A340. Budeme tedy chtít vybrat všechny řádky, u nichž proměnná model začíná na “A340.” Kromě balíku dplyr budeme potřebovat i stringr:

library(stringr)

planes %>% 
    filter(str_detect(model,"^A340"))
## # A tibble: 1 × 9
##   tailnum  year type           manufacturer   model  engines seats speed engine 
##   <chr>   <int> <chr>          <chr>          <chr>    <int> <int> <int> <chr>  
## 1 N281AT     NA Fixed wing mu… AIRBUS INDUST… A340-…       4   375    NA Turbo-…

Je možné používat i funkce, které nevracejí logické hodnoty. V takové případě je však nutné jejich výsledek na logickou proměnou transformovat. Řekněme, že by nás zajímala letadla, kde na jeden motor připadá méně než 10 sedadel:

planes %>% 
    filter(seats/engines < 10)
## # A tibble: 39 × 9
##    tailnum  year type          manufacturer model   engines seats speed engine  
##    <chr>   <int> <chr>         <chr>        <chr>     <int> <int> <int> <chr>   
##  1 N201AA   1959 Fixed wing s… CESSNA       150           1     2    90 Recipro…
##  2 N202AA   1980 Fixed wing m… CESSNA       421C          2     8    90 Recipro…
##  3 N315AT     NA Fixed wing s… JOHN G HESS  AT-5          1     2    NA 4 Cycle 
##  4 N347AA   1985 Rotorcraft    SIKORSKY     S-76A         2    14    NA Turbo-s…
##  5 N350AA   1980 Fixed wing m… PIPER        PA-31-…       2     8   162 Recipro…
##  6 N364AA   1973 Fixed wing m… CESSNA       310Q          2     6   167 Recipro…
##  7 N365AA   2001 Rotorcraft    AGUSTA SPA   A109E         2     8    NA Turbo-s…
##  8 N376AA   1978 Fixed wing s… PIPER        PA-32R…       1     7    NA Recipro…
##  9 N377AA     NA Fixed wing s… PAIR MIKE E  FALCON…       1     2    NA Recipro…
## 10 N378AA   1963 Fixed wing s… CESSNA       172E          1     4   105 Recipro…
## # … with 29 more rows

Ve speciálních případech je užitečné vybírat řádky ne podle splnění určitých podmínek, ale podle jiných kritérií. Pro tyto případy je v balíku dplyr obsažena funkce slice(). (Poznámka: zde diskutované funkce slice() získala s verzí dplyr mnoho nových úloh a rolí. V předchozích verzích umožňovala pouze výběr řádku na základě jeho čísla.)

V základní variantě přijímá slice() číslo řádku, nebo jejich rozsah, který má být vybrán:

planes %>% 
    slice(1L)
## # A tibble: 1 × 9
##   tailnum  year type            manufacturer model   engines seats speed engine 
##   <chr>   <int> <chr>           <chr>        <chr>     <int> <int> <int> <chr>  
## 1 N10156   2004 Fixed wing mul… EMBRAER      EMB-14…       2    55    NA Turbo-…
planes %>% 
    slice(1L:5L)
## # A tibble: 5 × 9
##   tailnum  year type           manufacturer   model  engines seats speed engine 
##   <chr>   <int> <chr>          <chr>          <chr>    <int> <int> <int> <chr>  
## 1 N10156   2004 Fixed wing mu… EMBRAER        EMB-1…       2    55    NA Turbo-…
## 2 N102UW   1998 Fixed wing mu… AIRBUS INDUST… A320-…       2   182    NA Turbo-…
## 3 N103US   1999 Fixed wing mu… AIRBUS INDUST… A320-…       2   182    NA Turbo-…
## 4 N104UW   1999 Fixed wing mu… AIRBUS INDUST… A320-…       2   182    NA Turbo-…
## 5 N10575   2002 Fixed wing mu… EMBRAER        EMB-1…       2    55    NA Turbo-…
planes %>% 
    slice(c(1,2:5))
## # A tibble: 5 × 9
##   tailnum  year type           manufacturer   model  engines seats speed engine 
##   <chr>   <int> <chr>          <chr>          <chr>    <int> <int> <int> <chr>  
## 1 N10156   2004 Fixed wing mu… EMBRAER        EMB-1…       2    55    NA Turbo-…
## 2 N102UW   1998 Fixed wing mu… AIRBUS INDUST… A320-…       2   182    NA Turbo-…
## 3 N103US   1999 Fixed wing mu… AIRBUS INDUST… A320-…       2   182    NA Turbo-…
## 4 N104UW   1999 Fixed wing mu… AIRBUS INDUST… A320-…       2   182    NA Turbo-…
## 5 N10575   2002 Fixed wing mu… EMBRAER        EMB-1…       2    55    NA Turbo-…

Poslední příklad ukazuje, že (a) číslo řádku nemusí být nutně zadáno jako integer (L) a (b) vstupem může být vektor vytvořený funkcí c().

Speciální variantou slice() jsou varianty slice_head(), slice_tail(), slice_min() a slice_max(). Ty vrací n prvních/posledních řádků respektive n řádků s nejnižší/nejvyzšší hodnotou:

planes %>% 
    slice_head(n = 5)
## # A tibble: 5 × 9
##   tailnum  year type           manufacturer   model  engines seats speed engine 
##   <chr>   <int> <chr>          <chr>          <chr>    <int> <int> <int> <chr>  
## 1 N10156   2004 Fixed wing mu… EMBRAER        EMB-1…       2    55    NA Turbo-…
## 2 N102UW   1998 Fixed wing mu… AIRBUS INDUST… A320-…       2   182    NA Turbo-…
## 3 N103US   1999 Fixed wing mu… AIRBUS INDUST… A320-…       2   182    NA Turbo-…
## 4 N104UW   1999 Fixed wing mu… AIRBUS INDUST… A320-…       2   182    NA Turbo-…
## 5 N10575   2002 Fixed wing mu… EMBRAER        EMB-1…       2    55    NA Turbo-…
planes %>% 
    slice_max(seats, n = 1)
## # A tibble: 1 × 9
##   tailnum  year type             manufacturer model  engines seats speed engine 
##   <chr>   <int> <chr>            <chr>        <chr>    <int> <int> <int> <chr>  
## 1 N670US   1990 Fixed wing mult… BOEING       747-4…       4   450    NA Turbo-…

Počet řádků nemusí být určen jako absolutní číslo, ale je možné ho specifikovat v parametru prop jako podíl všech pozorování:

planes %>% 
    slice_head(prop = 0.001)
## # A tibble: 3 × 9
##   tailnum  year type           manufacturer   model  engines seats speed engine 
##   <chr>   <int> <chr>          <chr>          <chr>    <int> <int> <int> <chr>  
## 1 N10156   2004 Fixed wing mu… EMBRAER        EMB-1…       2    55    NA Turbo-…
## 2 N102UW   1998 Fixed wing mu… AIRBUS INDUST… A320-…       2   182    NA Turbo-…
## 3 N103US   1999 Fixed wing mu… AIRBUS INDUST… A320-…       2   182    NA Turbo-…

Toto volání vrátí 0,1 % pozorování ze začátku tabulky.

Poslední speciální variantou slice() je slice_sample(), která umožňuje provést náhodný výběr pozorování z tabulky. (V předchozích verzích dplyr k tomu sloužily funkce sample_*().) Počet řádků v náhodném výběru může být stanoveno opět absolutním číslem (parametr n) nebo podílem (parametr prop). Funkce umožňuje používat ve výběru váhy (parametr weight_by) a zvolit výběr s nahrazením (parametr replace).

16.1.2 Výběr sloupců (proměnných)

Pro výběr sloupců slouží funkce select(). Syntax je podobná jako v případě filter():

select(.data, ...)

Do select() vstupuje tabulka a identifikace sloupců, které mají být vybrány. Například:

planes %>% 
    select(tailnum, manufacturer)
## # A tibble: 3,322 × 2
##    tailnum manufacturer    
##    <chr>   <chr>           
##  1 N10156  EMBRAER         
##  2 N102UW  AIRBUS INDUSTRIE
##  3 N103US  AIRBUS INDUSTRIE
##  4 N104UW  AIRBUS INDUSTRIE
##  5 N10575  EMBRAER         
##  6 N105UW  AIRBUS INDUSTRIE
##  7 N107US  AIRBUS INDUSTRIE
##  8 N108UW  AIRBUS INDUSTRIE
##  9 N109UW  AIRBUS INDUSTRIE
## 10 N110UW  AIRBUS INDUSTRIE
## # … with 3,312 more rows

Příklad ukazuje první a základní možnost, jak identifikovat sloupec – a to jeho jménem. select() však umožňuje specifikovat sloupec i pomocí čísla pozice.

Následující volání funkce select() tak vrací stejný výsledek, jako tomu byl v případě identifikace sloupců jejich jménem.

planes %>% 
    select(1,4)
## # A tibble: 3,322 × 2
##    tailnum manufacturer    
##    <chr>   <chr>           
##  1 N10156  EMBRAER         
##  2 N102UW  AIRBUS INDUSTRIE
##  3 N103US  AIRBUS INDUSTRIE
##  4 N104UW  AIRBUS INDUSTRIE
##  5 N10575  EMBRAER         
##  6 N105UW  AIRBUS INDUSTRIE
##  7 N107US  AIRBUS INDUSTRIE
##  8 N108UW  AIRBUS INDUSTRIE
##  9 N109UW  AIRBUS INDUSTRIE
## 10 N110UW  AIRBUS INDUSTRIE
## # … with 3,312 more rows
planes %>% names
## [1] "tailnum"      "year"         "type"         "manufacturer" "model"       
## [6] "engines"      "seats"        "speed"        "engine"

16.1.2.1 Funkce select() a speciální funkce

Při identifikaci sloupců je možné využít speciální funkce. Některé fungují pouze “uvnitř” select() a některých dalších funkcí z tidyverse.

První taková funkce je :. Umožňuje specifikovat rozsah sloupců, místo vypisování všech prvků. Všechny následující volání tak vrací stejný výsledek:

planes %>% 
    select(1,2,3,4,8)

planes %>% 
    select(tailnum, year, type, manufacturer, speed)

planes %>% 
    select(1:4, 8)

planes %>% 
    select(tailnum:manufacturer, speed)

Další speciální funkcí je - (mínus). Tato funkce umožňuje “negativní” výběr. Při jejím použití není sloupec zahrnut, ale naopak vypuštěn:

planes %>% 
    select(-tailnum, -year, -type, -manufacturer, -speed)
## # A tibble: 3,322 × 4
##    model     engines seats engine   
##    <chr>       <int> <int> <chr>    
##  1 EMB-145XR       2    55 Turbo-fan
##  2 A320-214        2   182 Turbo-fan
##  3 A320-214        2   182 Turbo-fan
##  4 A320-214        2   182 Turbo-fan
##  5 EMB-145LR       2    55 Turbo-fan
##  6 A320-214        2   182 Turbo-fan
##  7 A320-214        2   182 Turbo-fan
##  8 A320-214        2   182 Turbo-fan
##  9 A320-214        2   182 Turbo-fan
## 10 A320-214        2   182 Turbo-fan
## # … with 3,312 more rows

Speciální funkce je možné kombinovat – je například možné vypustit sloupce identifikované rozsahem (:):

planes %>% 
    select(-tailnum:-manufacturer, -speed)
## # A tibble: 3,322 × 4
##    model     engines seats engine   
##    <chr>       <int> <int> <chr>    
##  1 EMB-145XR       2    55 Turbo-fan
##  2 A320-214        2   182 Turbo-fan
##  3 A320-214        2   182 Turbo-fan
##  4 A320-214        2   182 Turbo-fan
##  5 EMB-145LR       2    55 Turbo-fan
##  6 A320-214        2   182 Turbo-fan
##  7 A320-214        2   182 Turbo-fan
##  8 A320-214        2   182 Turbo-fan
##  9 A320-214        2   182 Turbo-fan
## 10 A320-214        2   182 Turbo-fan
## # … with 3,312 more rows

Výsledné tabulky jsou pochopitelně shodné.

Obě tyto speciální funkce vyžadují přesnou specifikaci jména nebo pozice sloupce. V reálném životě občas pracujeme s poněkud vágnějším zadáním. Mohli bychom chtít například vybrat všechny sloupce, které obsahují informace o motorech. Ty jsou v tabulce planes dva engine (typ motoru) a engines (počet motorů).

První možností je samozřejmě možné použít následující volání a vybrat sloupce jejich výčtem:

planes %>% 
    select(engine,engines)

To však není praktické v případě, že pracujeme s větším množstvím sloupců, jejichž názvy jsou systematické. V tom případě je užitečné sáhnout po select helpers (funkcích pomocníčcích chcete-li). dplyr jich nabízí hned několik:

  • starts_with() vybírá sloupce, jejichž jméno začíná na řetězec, který je argumentem funkce starts_with()
  • ends_with() vybírá sloupce, jejichž jméno končí na řetězec, který je argumentem funkce ends_with()
  • contains() vybírá sloupce, jejichž jméno obsahuje řetězec, který je argumentem funkce contains()
  • matches() vybírá sloupce, jejichž jméno odpovídá zadanému regulárnímu výrazu
  • num_range() slouží pro výběr sloupců, jejichž jméno je tvořeno kombinací řetězce a čísla – například trial_1, trial_2,…
  • everything() vrací všechny sloupce
  • last_col() vrací poslední sloupec

Pro výběr proměnných se vztahem k motorům lze použít hned tři funkce:

planes %>% 
    select(starts_with("engine"))

planes %>% 
    select(contains("engine"))

planes %>% 
    select(matches("^engine"))

První a třetí varianta vybere všechny sloupce, které začínají na “engine.” Druhé variantě postačí k výběru, že řetězec “engine” se vyskytuje kdekoliv ve jméně sloupce.

Další select helpers umožňují vybrat sloupce podle jmen ze vstupního vektoru.

  • all_of() vrátí tabulku s vybranými sloupci pouze tehdy, pokud se ji podaří najít všechna jména obsažená ve vstupním vektoru. V opačném případě vrátí chybu.
  • any_of() vrátí prostě jenom ty sloupce, které v tabulce najde.
planes %>% 
    select(all_of("engine")) # Vrátí jeden sloupec

planes %>% 
    select(all_of(c("engine","Engine"))) # Vrátí chybu

planes %>% 
    select(any_of(c("engine","Engine"))) # Vrátí jeden sloupec

planes %>% 
    select(any_of(c("Engine"))) # Nevrátí řádný sloupec.

Select helpers mohou být kombinováni se všemi ostatními způsoby identifikace sloupců:

planes %>% 
    select(tailnum, starts_with("engine"))
## # A tibble: 3,322 × 3
##    tailnum engines engine   
##    <chr>     <int> <chr>    
##  1 N10156        2 Turbo-fan
##  2 N102UW        2 Turbo-fan
##  3 N103US        2 Turbo-fan
##  4 N104UW        2 Turbo-fan
##  5 N10575        2 Turbo-fan
##  6 N105UW        2 Turbo-fan
##  7 N107US        2 Turbo-fan
##  8 N108UW        2 Turbo-fan
##  9 N109UW        2 Turbo-fan
## 10 N110UW        2 Turbo-fan
## # … with 3,312 more rows

Posledním select helper je where(). Tato funkce umožňuje vybrat sloupce s pomocí funkce vracející logickou hdonotu. Je tak možné například vybrat pouze sloupce, které obahují celá čísla:

planes %>% 
  select(where(is.integer))
## # A tibble: 3,322 × 4
##     year engines seats speed
##    <int>   <int> <int> <int>
##  1  2004       2    55    NA
##  2  1998       2   182    NA
##  3  1999       2   182    NA
##  4  1999       2   182    NA
##  5  2002       2    55    NA
##  6  1999       2   182    NA
##  7  1999       2   182    NA
##  8  1999       2   182    NA
##  9  1999       2   182    NA
## 10  1999       2   182    NA
## # … with 3,312 more rows

Všiměte si, že samotná funkce is.integer je parametrem where() a nikoliv její výstup. Je proto nutné do funkce zadat is.integer a nikoliv is.integer().

Funkce where() je jedna z novinek v dplyr 1.0.0 a společně s dalšími funkcemi nahradila tzv. scoped varianty základních funkcí (select_if() atp.).

Select helper s velmi specifickým využitím je everything(), které slouží k vybrání všeho. Nebo lépe všeho ostatního. Pokud z nějakého důvodu chceme změnit pořadí sloupců v tabulce, potom se hodí právě everything().

planes %>% 
    select(engine, engines, everything())
## # A tibble: 3,322 × 9
##    engine    engines tailnum  year type         manufacturer  model  seats speed
##    <chr>       <int> <chr>   <int> <chr>        <chr>         <chr>  <int> <int>
##  1 Turbo-fan       2 N10156   2004 Fixed wing … EMBRAER       EMB-1…    55    NA
##  2 Turbo-fan       2 N102UW   1998 Fixed wing … AIRBUS INDUS… A320-…   182    NA
##  3 Turbo-fan       2 N103US   1999 Fixed wing … AIRBUS INDUS… A320-…   182    NA
##  4 Turbo-fan       2 N104UW   1999 Fixed wing … AIRBUS INDUS… A320-…   182    NA
##  5 Turbo-fan       2 N10575   2002 Fixed wing … EMBRAER       EMB-1…    55    NA
##  6 Turbo-fan       2 N105UW   1999 Fixed wing … AIRBUS INDUS… A320-…   182    NA
##  7 Turbo-fan       2 N107US   1999 Fixed wing … AIRBUS INDUS… A320-…   182    NA
##  8 Turbo-fan       2 N108UW   1999 Fixed wing … AIRBUS INDUS… A320-…   182    NA
##  9 Turbo-fan       2 N109UW   1999 Fixed wing … AIRBUS INDUS… A320-…   182    NA
## 10 Turbo-fan       2 N110UW   1999 Fixed wing … AIRBUS INDUS… A320-…   182    NA
## # … with 3,312 more rows

Změní pořadí sloupců tak, že na první pozici přesune engine a engines a následně do tabulky vyskládá všechny ostatní sloupce. Díky everything() není nutné jejich jména vypisovat. Do verze 1.0.0 bylo použití select() prakticky jedinou možností jak změnit pořadí sloupců. O dtéto verze v dplyr existuje specializovaná funkce relocate(), která také umí pracovat se select helpers.

16.1.2.2 Další speciální funkce

Při práci s výběry, které jsou v podstatě jen logickým vektorem nad jmény sloupců, je možné používat logické operátory ! (negace), | (OR) a & (AND):

planes %>% 
  select(!starts_with("engi")) # Vrátí sloupce, které nezačínají na "engi"
## # A tibble: 3,322 × 7
##    tailnum  year type                    manufacturer     model     seats speed
##    <chr>   <int> <chr>                   <chr>            <chr>     <int> <int>
##  1 N10156   2004 Fixed wing multi engine EMBRAER          EMB-145XR    55    NA
##  2 N102UW   1998 Fixed wing multi engine AIRBUS INDUSTRIE A320-214    182    NA
##  3 N103US   1999 Fixed wing multi engine AIRBUS INDUSTRIE A320-214    182    NA
##  4 N104UW   1999 Fixed wing multi engine AIRBUS INDUSTRIE A320-214    182    NA
##  5 N10575   2002 Fixed wing multi engine EMBRAER          EMB-145LR    55    NA
##  6 N105UW   1999 Fixed wing multi engine AIRBUS INDUSTRIE A320-214    182    NA
##  7 N107US   1999 Fixed wing multi engine AIRBUS INDUSTRIE A320-214    182    NA
##  8 N108UW   1999 Fixed wing multi engine AIRBUS INDUSTRIE A320-214    182    NA
##  9 N109UW   1999 Fixed wing multi engine AIRBUS INDUSTRIE A320-214    182    NA
## 10 N110UW   1999 Fixed wing multi engine AIRBUS INDUSTRIE A320-214    182    NA
## # … with 3,312 more rows
planes %>% 
  select(starts_with("e") & ends_with("s")) # Vrátí sloupce začínající na "e" a zároveň končící na "s"
## # A tibble: 3,322 × 1
##    engines
##      <int>
##  1       2
##  2       2
##  3       2
##  4       2
##  5       2
##  6       2
##  7       2
##  8       2
##  9       2
## 10       2
## # … with 3,312 more rows
planes %>% 
  select(starts_with("e") | ends_with("s")) # Vrátí sloupce začínající na "e" nebo končící na "s"
## # A tibble: 3,322 × 3
##    engines engine    seats
##      <int> <chr>     <int>
##  1       2 Turbo-fan    55
##  2       2 Turbo-fan   182
##  3       2 Turbo-fan   182
##  4       2 Turbo-fan   182
##  5       2 Turbo-fan    55
##  6       2 Turbo-fan   182
##  7       2 Turbo-fan   182
##  8       2 Turbo-fan   182
##  9       2 Turbo-fan   182
## 10       2 Turbo-fan   182
## # … with 3,312 more rows

Podobně je možné výběry kombinovat pomocí funkce c():

planes %>% 
  select(starts_with(c("e","s"))) # Vrátí sloupce začínající na "e" nebo na "s"
## # A tibble: 3,322 × 4
##    engines engine    seats speed
##      <int> <chr>     <int> <int>
##  1       2 Turbo-fan    55    NA
##  2       2 Turbo-fan   182    NA
##  3       2 Turbo-fan   182    NA
##  4       2 Turbo-fan   182    NA
##  5       2 Turbo-fan    55    NA
##  6       2 Turbo-fan   182    NA
##  7       2 Turbo-fan   182    NA
##  8       2 Turbo-fan   182    NA
##  9       2 Turbo-fan   182    NA
## 10       2 Turbo-fan   182    NA
## # … with 3,312 more rows

16.1.2.3 Výběr a přejmenování sloupce

Jednou ze speciálních funkcí je i =. To slouží v select() pro přejmenování. Například volání

planes %>% 
    select(tailnum, company = manufacturer)
## # A tibble: 3,322 × 2
##    tailnum company         
##    <chr>   <chr>           
##  1 N10156  EMBRAER         
##  2 N102UW  AIRBUS INDUSTRIE
##  3 N103US  AIRBUS INDUSTRIE
##  4 N104UW  AIRBUS INDUSTRIE
##  5 N10575  EMBRAER         
##  6 N105UW  AIRBUS INDUSTRIE
##  7 N107US  AIRBUS INDUSTRIE
##  8 N108UW  AIRBUS INDUSTRIE
##  9 N109UW  AIRBUS INDUSTRIE
## 10 N110UW  AIRBUS INDUSTRIE
## # … with 3,312 more rows

vybere sloupce tailnum a manufacturer. Sloupec manufacturer však zároveň přejmenuje na company.

Speciálně pro přejmenovávání sloupců je v dplyr obsažena funkce rename() (fakticky jde jen o lehkou mutaci select()). Ta sloupce nevybírá, ale jen přejmenovává. Použití = je v ní povinné:

planes %>% 
    rename(tailnum, company = manufacturer)
## Error: All renaming inputs must be named.

Po opravě získáme správný výsledek:

planes %>% 
    rename(company = manufacturer)
## # A tibble: 3,322 × 9
##    tailnum  year type                    company model engines seats speed engine
##    <chr>   <int> <chr>                   <chr>   <chr>   <int> <int> <int> <chr> 
##  1 N10156   2004 Fixed wing multi engine EMBRAER EMB-…       2    55    NA Turbo…
##  2 N102UW   1998 Fixed wing multi engine AIRBUS… A320…       2   182    NA Turbo…
##  3 N103US   1999 Fixed wing multi engine AIRBUS… A320…       2   182    NA Turbo…
##  4 N104UW   1999 Fixed wing multi engine AIRBUS… A320…       2   182    NA Turbo…
##  5 N10575   2002 Fixed wing multi engine EMBRAER EMB-…       2    55    NA Turbo…
##  6 N105UW   1999 Fixed wing multi engine AIRBUS… A320…       2   182    NA Turbo…
##  7 N107US   1999 Fixed wing multi engine AIRBUS… A320…       2   182    NA Turbo…
##  8 N108UW   1999 Fixed wing multi engine AIRBUS… A320…       2   182    NA Turbo…
##  9 N109UW   1999 Fixed wing multi engine AIRBUS… A320…       2   182    NA Turbo…
## 10 N110UW   1999 Fixed wing multi engine AIRBUS… A320…       2   182    NA Turbo…
## # … with 3,312 more rows

Tabulka obsahuje všechny sloupce, ale jeden z nich byl přejmenován.