ripe

The goal of ripe is to create a more flexible way to rerun {magrittr} pipelines.

Installation

remotes::install_github('yonicd/ripe')

Goal

We want to rerun the following pipeline that contains stochastic elements in a shorter and more flexible way


f <- function(){
  
  stats::runif(20)%>%
    sample(10)%>%
    utils::head(5)
}

set.seed(123)

replicate(n=3,f(),simplify = FALSE)
#> [[1]]
#> [1] 0.5514350 0.4089769 0.8924190 0.5281055 0.4566147
#> 
#> [[2]]
#> [1] 0.4145463 0.2164079 0.1428000 0.3688455 0.4659625
#> 
#> [[3]]
#> [1] 0.7881958 0.1028646 0.4348927 0.9849570 0.4398317

Can’t I just add replicate to the end of it?


set.seed(123)

stats::runif(20)%>%
   sample(10)%>%
   utils::head(5)%>%
   replicate(n = 3,simplify = FALSE)
#> [[1]]
#> [1] 0.5514350 0.4089769 0.8924190 0.5281055 0.4566147
#> 
#> [[2]]
#> [1] 0.5514350 0.4089769 0.8924190 0.5281055 0.4566147
#> 
#> [[3]]
#> [1] 0.5514350 0.4089769 0.8924190 0.5281055 0.4566147

That didn’t do what we wanted…

This is better!


set.seed(123)

stats::runif(20)%>%
  sample(10)%>%
  utils::head(5)%>%
  ripe(replicate,n=3,simplify=FALSE)
#> [[1]]
#> [1] 0.4145463 0.2164079 0.1428000 0.3688455 0.4659625
#> 
#> [[2]]
#> [1] 0.7881958 0.1028646 0.4348927 0.9849570 0.4398317
#> 
#> [[3]]
#> [1] 0.9144382 0.4886130 0.7205963 0.4829024 0.6087350

Manipulate Pipeline Replicates

We can now manipulate the pipeline or move ripe around into different subsets of the function sequence, creating iterative replication workflows.


set.seed(123)

stats::runif(20)%>%
  #sample(10)%>%
  utils::head(5)%>%
  ripe(replicate,n=3,simplify=FALSE)
#> [[1]]
#> [1] 0.8895393 0.6928034 0.6405068 0.9942698 0.6557058
#> 
#> [[2]]
#> [1] 0.1428000 0.4145463 0.4137243 0.3688455 0.1524447
#> 
#> [[3]]
#> [1] 0.66511519 0.09484066 0.38396964 0.27438364 0.81464004

Convert Pipelines to Lazy Functions

You can also quickly convert the pipelines to a lazyeval function

f <- stats::runif(20)%>%
  sample(10)%>%
  utils::head(5)%>%
  lazy()

set.seed(123)

f()
#> [1] 0.5514350 0.4089769 0.8924190 0.5281055 0.4566147

f()
#> [1] 0.4145463 0.2164079 0.1428000 0.3688455 0.4659625

Copy Link

Version

Down Chevron

Install

install.packages('ripe')

Monthly Downloads

10

Version

0.1.0

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

December 6th, 2019

Functions in ripe (0.1.0)