Skip to content

yonicd/ripe

Repository files navigation

CRAN status R-win build status R-mac build status R-linux build status Codecov test coverage Covrpage Summary

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

About

rerun {magrittr} pipelines

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published

Languages