inst/doc/v01-get-started.R

## ----knitr-setup, include = FALSE-----------------------------------------------------------------
require(pipeflow)

knitr::opts_chunk$set(
  comment = "#",
  prompt = FALSE,
  tidy = FALSE,
  cache = FALSE,
  collapse = TRUE
)

old <- options(width = 100L)

## ----show-airquality------------------------------------------------------------------------------
head(airquality)

## ----define-pipeline------------------------------------------------------------------------------
library(pipeflow)
library(ggplot2)

pip <- Pipeline$new("my-pipeline", data = airquality)

## ----show-initial-pipeline------------------------------------------------------------------------
pip

## ----define-data-prep-step------------------------------------------------------------------------
pip$add(
    "data_prep",
    function(data = ~data) {
        replace(data, "Temp.Celsius", (data[, "Temp"] - 32) * 5/9)
    }
)

## ----show-pipeline-after-data-prep-was-added------------------------------------------------------
pip

## -------------------------------------------------------------------------------------------------
pip$add(
    "model_fit",
    function(
        data = ~data_prep,
        xVar = "Temp.Celsius"
    ) {
        lm(paste("Ozone ~", xVar), data = data)
    }
)

## -------------------------------------------------------------------------------------------------
pip$add(
    "model_plot",
    function(
        model = ~model_fit,
        data = ~data_prep,
        xVar = "Temp.Celsius",
        title = "Linear model fit"
    ) {
        coeffs <- coefficients(model)
        ggplot(data) +
            geom_point(aes(.data[[xVar]], .data[["Ozone"]])) +
            geom_abline(intercept = coeffs[1], slope = coeffs[2]) +
            labs(title = title)
    }
)

## ----show-completed-pipeline----------------------------------------------------------------------
pip

## ----eval = FALSE---------------------------------------------------------------------------------
# library(visNetwork)
# do.call(visNetwork, args = pip$get_graph()) |>
#     visHierarchicalLayout(direction = "LR")

## ----echo = FALSE---------------------------------------------------------------------------------
library(visNetwork)
do.call(visNetwork, args = c(pip$get_graph(), list(height = 100))) |>
    visHierarchicalLayout(direction = "LR")

## ----try-add-bad-step, error = TRUE---------------------------------------------------------------
try({
pip$add(
    "another_step",
    function(data = ~foo) {
        data
    }
)
})

## -------------------------------------------------------------------------------------------------
pip

## ----run-pipeline---------------------------------------------------------------------------------
pip$run()

## ----pipeline-after-run---------------------------------------------------------------------------
pip

## ----echo = FALSE---------------------------------------------------------------------------------
library(visNetwork)
do.call(visNetwork, args = c(pip$get_graph(), list(height = 100))) |>
    visHierarchicalLayout(direction = "LR")

## ----inspect-lm, message = FALSE------------------------------------------------------------------
pip$get_out("model_fit")

## ----inspect-plot, message = FALSE, warning = FALSE, fig.alt = "model-plot"-----------------------
pip$get_out("model_plot")

## ----inspect-params-------------------------------------------------------------------------------
pip$get_params()

## ----set-xVar-------------------------------------------------------------------------------------
pip$set_params(list(xVar = "Solar.R"))
pip$get_params()

## ----show-pipeline-with-outdated-step-------------------------------------------------------------
pip

## ----echo = FALSE---------------------------------------------------------------------------------
library(visNetwork)
do.call(visNetwork, args = c(pip$get_graph(), list(height = 100))) |>
    visHierarchicalLayout(direction = "LR")

## ----run-pipeline-again---------------------------------------------------------------------------
pip$run()

## ----inspect-plot-again, message = FALSE, warning = FALSE, fig.alt = "model-plot"-----------------
pip$get_out("model_plot")

## ----set-title------------------------------------------------------------------------------------
pip$set_params(list(title = "Some new title"))
pip

## ----inspect-plot-after-title-change, message = FALSE, warning = FALSE, fig.alt = "model-plot"----
pip$run()$get_out("model_plot")

## -------------------------------------------------------------------------------------------------
pip$set_data(airquality[1:10, ])
pip

## ----inspect-plot-after-data-change, message = FALSE, warning = FALSE, fig.alt = "model-plot"-----
pip$run()$get_out("model_plot")

## ----set-unknown-parameters, warning = TRUE-------------------------------------------------------
pip$set_params(list(titel = "misspelled variable name", foo = "my foo"))

## ----include = FALSE----------------------------------------------------------
options(old)

Try the pipeflow package in your browser

Any scripts or data that you put into this service are public.

pipeflow documentation built on April 3, 2025, 10:50 p.m.