# Functional Sequences

Contents

This feature blew my mind. R permits to define functional sequences.

You can use %>% to not only produce values but also to produce functions (or functional sequences)! It’s really all the same, except sometimes the function is applied instantly and produces a result, and sometimes it is not, in which case the function itself is returned.1

Here is an example.

suppressPackageStartupMessages(library(tidyverse))
suppressPackageStartupMessages(library(babynames))

# Defining the functional sequence
prepare <- . %>%
group_by(year, sex) %>%
summarise(n = sum(n))


It is another, more readable way, to define a unary function–or to define a pipeline without applying it to the data. It is possible to get back its description.

prepare
# Functional sequence with the following components:

#  1. group_by(., year, sex)
#  2. summarise(., n = sum(n))

# Use 'functions' to extract the individual functions.


It can be included in a pipeline say to apply it to different data or to make the pipeline shorter and split it in simple, understandable operations.

babynames %>%
prepare %>%
ggplot() +
geom_bar(aes(x = year, y = n, fill = sex),
stat = 'identity')