Create

  • a PipeOp from mlr_pipeops from given ID

  • a PipeOpLearner from a Learner object

  • a PipeOpFilter from a Filter object

  • a PipeOpSelect from a Selector object

  • a clone of a PipeOp from a given PipeOp (possibly with changed settings)

The object is initialized with given parameters and param_vals.

po() taks a single obj (PipeOp id, Learner, ...) and converts it to a PipeOp. pos() (with plural-s) takes either a character-vector, or a list of objects, and creates a list of PipeOps.

po(.obj, ...)

pos(.objs, ...)

Arguments

.obj

[any]
The object from which to construct a PipeOp. If this is a character(1), it is looked up in the mlr_pipeops dictionary. Otherwise, it is converted to a PipeOp.

...

any
Additional parameters to give to constructed object. This may be an argument of the constructor of the PipeOp, in which case it is given to this constructor; or it may be a parameter value, in which case it is given to the param_vals argument of the constructor.

.objs

character | list
Either a character of PipeOps to look up in mlr_pipeops, or a list of other objects to be converted to a PipeOp. If this is a named list, then the names are used as $id slot for the resulting PipeOps.

Value

A PipeOp (for po()), or a list of PipeOps (for pos()).

Examples

library("mlr3")

po("learner", lrn("classif.rpart"), cp = 0.3)
#> PipeOp: <classif.rpart> (not trained)
#> values: <xval=0, cp=0.3>
#> Input channels <name [train type, predict type]>:
#>   input [TaskClassif,TaskClassif]
#> Output channels <name [train type, predict type]>:
#>   output [NULL,PredictionClassif]

po(lrn("classif.rpart"), cp = 0.3)
#> PipeOp: <classif.rpart> (not trained)
#> values: <xval=0, cp=0.3>
#> Input channels <name [train type, predict type]>:
#>   input [TaskClassif,TaskClassif]
#> Output channels <name [train type, predict type]>:
#>   output [NULL,PredictionClassif]

# is equivalent with:
mlr_pipeops$get("learner", lrn("classif.rpart"),
  param_vals = list(cp = 0.3))
#> PipeOp: <classif.rpart> (not trained)
#> values: <xval=0, cp=0.3>
#> Input channels <name [train type, predict type]>:
#>   input [TaskClassif,TaskClassif]
#> Output channels <name [train type, predict type]>:
#>   output [NULL,PredictionClassif]

pos(c("pca", original = "nop"))
#> Error in (function (classes, fdef, mtable) {    methods <- .findInheritedMethods(classes, fdef, mtable)    if (length(methods) == 1L)         return(methods[[1L]])    else if (length(methods) == 0L) {        cnames <- paste0("\"", vapply(classes, as.character,             ""), "\"", collapse = ", ")        stop(gettextf("unable to find an inherited method for function %s for signature %s",             sQuote(fdef@generic), sQuote(cnames)), domain = NA)    }    else stop("Internal error in finding inherited methods; didn't return a unique method",         domain = NA)})(list("character"), new("standardGeneric", .Data = function (x) standardGeneric("pos"), generic = structure("pos", package = "BiocGenerics"),     package = "BiocGenerics", group = list(), valueClass = character(0),     signature = "x", default = NULL, skeleton = (function (x)     stop("invalid call in method dispatch to 'pos' (no default method)",         domain = NA))(x)), <environment>): unable to find an inherited method for function ‘pos’ for signature ‘"character"’