Issu du package magrittr et disponible dans le tidyverse, le pipe vous permet de passer de :

library(tidyverse)
data("population")
head(summarise(group_by(filter(population, year > 1999),country),moyenne = mean(population)))

à

population %>%
    filter(year > 1999) %>%
    group_by(country) %>%
    summarise(moyenne = mean(population)) %>%
    head()

Plus clair, n’est-ce pas !

Alors, comment ça marche ? C’est très simple : l’élément à gauche de %>% se retrouve en premier argument de la fonction à droite. Autrement dit, f(x,y) s’écrit x %>% f(y).
Comment faire si l’élément de gauche n’est pas le premier argument de celui de droite ? Vous pouvez y faire référence en le remplaçant par un point :

list(c(1,2,3), c(4,5,6), c(8,9,10)) %>%
    lapply(FUN = mean, .)