In het kort Dessert
# (1) function users call
dessert <- function (input, p1, p2, ...) {
# (2) initiate the dessert object
dessert <- Dessert$new(input, p1, ...)
# (7) apply render method
dessert$render(p2, ...)
return(dessert)
}
Dessert <- R6::R6Class(
name = "Dessert",
# (3) run initiate method
initialize = function(input, p, ...) {
# (4) call class function
do.call(dessert.class, ...)
},
# (8) run render method
render = function(p, ...) {
# (9) store input and markdown parameters in a rdata object
save(recipe.rdata)
quarto::quarto_render(self, ...)
}
)
# (5) say data.frame class was called
dessert.data.frame <- function(self, ...) {
# (6) now additional parameters given via an ellipsis
extra_parameters <- list(...)
return(self)
}
Uitdaging
Alle specifieke recipe parameters bij stap 6, worden middels een ellipsis doorgegeven. Het is lastig om een validity check te doen op de parameters.
Nu is het mogelijk om parameters in de yml van het qmd te specificeren.
title: "Example Recipe"
param:
optional_parameter: 123,
required_parameter
Die worden bij het renderen als een lijst meegegeven:
quarto::quarto_render(self, params = list(optional_parameter = 456, required_parameter = FALSE))
Alleen het markdown bestand, wat wij meegeven aan de gebruiken door middel van: copy.file(markdown), heeft de ingestelde parameter waardes niet. Dus bij het heropenen van het qmd bestand zal de gebruiker zelf die parameters weer moeten invullen.
In het kort Dessert
Uitdaging
Alle specifieke recipe parameters bij stap 6, worden middels een ellipsis doorgegeven. Het is lastig om een validity check te doen op de parameters.
Nu is het mogelijk om parameters in de
ymlvan hetqmdte specificeren.Die worden bij het renderen als een lijst meegegeven:
Alleen het markdown bestand, wat wij meegeven aan de gebruiken door middel van:
copy.file(markdown), heeft de ingestelde parameter waardes niet. Dus bij het heropenen van hetqmdbestand zal de gebruiker zelf die parameters weer moeten invullen.