library(tidyverse)
You can use the pipe to rewrite multiple operations that you can read left-to-right, top-to-bottom (reading the pipe operator as “then”).
too many variables:
n1 <- rnorm(10000)
n2 <- abs(n1)
n3 <- matrix(n2, ncol = 100)
n4 <- rowMeans(n3)
n5 <- round(n4)
hist(n5)nested functions:
hist(round(rowMeans(matrix(abs(rnorm(10000)), ncol = 100))))more readable with %>%!
rnorm(10000) %>% 
  abs %>% 
  matrix(ncol = 50) %>% 
  rowMeans() %>% 
  round %>% 
  histPipe make your code more readable by:
x %>% f is equivalent to f(x)x %>% f(y) is equivalent to f(x, y)x %>% f %>% g %>% h is equivalent to h(g(f(x)))x %>% f(y, .) is equivalent to f(y, x)x %>% f(y, z = .) is equivalent to f(y, z = x)x %>% f(y = nrow(.), z = ncol(.)) is equivalent to f(x, y = nrow(x), z = ncol(x))
x %>% {f(y = nrow(.), z = ncol(.))} is equivalent to f(y = nrow(x), z = ncol(x))
instancename <- c('Cycle 1 Day 1', 'Cycle 2 Day 1')
folder <- instancename %>% 
  str_replace_all('Cycle (\\d+) Day (\\d+)', 'C\\1D\\2')
folder
## [1] "C1D1" "C2D1"
starwars %>% 
  select(name, height, species) %>% 
  filter(species %in% c('Human', 'Droid')) %>% 
  mutate(mean_height = mean(height, na.rm = T)) %>% 
  group_by(species) %>% 
  mutate(mean_height_by_species = mean(height, na.rm = T)) %>% 
  ungroup()
## # A tibble: 41 x 5
##    name               height species mean_height mean_height_by_species
##    <chr>               <int> <chr>         <dbl>                  <dbl>
##  1 Luke Skywalker        172 Human          170.                   177.
##  2 C-3PO                 167 Droid          170.                   131.
##  3 R2-D2                  96 Droid          170.                   131.
##  4 Darth Vader           202 Human          170.                   177.
##  5 Leia Organa           150 Human          170.                   177.
##  6 Owen Lars             178 Human          170.                   177.
##  7 Beru Whitesun lars    165 Human          170.                   177.
##  8 R5-D4                  97 Droid          170.                   131.
##  9 Biggs Darklighter     183 Human          170.                   177.
## 10 Obi-Wan Kenobi        182 Human          170.                   177.
## # … with 31 more rows