Nothing
## ----knitr-setup, include = FALSE-----------------------------------------------------------------
require(pipeflow)
knitr::opts_chunk$set(
comment = "#",
prompt = FALSE,
tidy = FALSE,
cache = FALSE,
collapse = TRUE
)
old <- options(width = 100L)
library(ggplot2)
## ----pipeline-with-output-------------------------------------------------------------------------
library(pipeflow)
library(ggplot2)
pip <- pipe_new(
"my-pipeline",
data = airquality
) |>
pipe_add(
"data_prep",
function(data = ~data) {
replace(data, "Temp.Celsius", (data[, "Temp"] - 32) * 5/9)
}
) |>
pipe_add(
"data_summary",
function(
data = ~data_prep,
xVar = "Temp.Celsius",
yVar = "Ozone"
) {
data[, c(xVar, yVar)]
},
keepOut = TRUE # <- keep this
) |>
pipe_add(
"model_fit",
function(
data = ~data_prep,
xVar = "Temp.Celsius",
yVar = "Ozone"
) {
lm(paste(yVar, "~", xVar), data = data)
}
) |>
pipe_add(
"model_summary",
function(
fit = ~model_fit
) {
summary(fit)
},
keepOut = TRUE # <- keep this
) |>
pipe_add(
"model_plot",
function(
model = ~model_fit,
data = ~data_prep,
xVar = "Temp.Celsius",
yVar = "Ozone",
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)
},
keepOut = TRUE # <- keep this
)
## -------------------------------------------------------------------------------------------------
pip
## ----echo = FALSE, eval = getOption("pipeflow.visNetwork", default = FALSE)-----------------------
# library(visNetwork)
# do.call(visNetwork, args = c(pip$get_graph(), list(height = 300))) |>
# visHierarchicalLayout(direction = "LR", sortMethod = "directed")
## -------------------------------------------------------------------------------------------------
pip$run()
out <- pip$collect_out()
names(out)
## -------------------------------------------------------------------------------------------------
str(out, max.level = 1)
## ----pipeline-with-grouped-output-----------------------------------------------------------------
pip <- Pipeline$new("my-pipeline", data = airquality) |>
pipe_add(
"data_prep",
function(data = ~data) {
replace(data, "Temp.Celsius", (data[, "Temp"] - 32) * 5/9)
}
) |>
pipe_add(
"used_data",
function(
data = ~data_prep,
xVar = "Temp.Celsius",
yVar = "Ozone"
) {
data[, c(xVar, yVar)]
},
keepOut = TRUE,
group = "Data" # <- define 'Data' group here
) |>
pipe_add(
"model_fit",
function(
data = ~data_prep,
xVar = "Temp.Celsius",
yVar = "Ozone"
) {
lm(paste(yVar, "~", xVar), data = data)
}
) |>
pipe_add(
"model_summary",
function(
fit = ~model_fit
) {
summary(fit)
},
keepOut = TRUE,
group = "Model" # <- define 'Model' group here
) |>
pipe_add(
"model_plot",
function(
model = ~model_fit,
data = ~data_prep,
xVar = "Temp.Celsius",
yVar = "Ozone",
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)
},
keepOut = TRUE,
group = "Model" # <- define 'Model' group here
)
## -------------------------------------------------------------------------------------------------
pip
## -------------------------------------------------------------------------------------------------
pip$run()
out <- pip$collect_out()
names(out)
## -------------------------------------------------------------------------------------------------
str(out, max.level = 2)
## ----include = FALSE----------------------------------------------------------
options(old)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.