diff --git a/R/OptimInstance.R b/R/OptimInstance.R index 0ff08c8d..1ce8e468 100644 --- a/R/OptimInstance.R +++ b/R/OptimInstance.R @@ -107,7 +107,9 @@ OptimInstance = R6Class("OptimInstance", #' columns for extra information. #' @param y (`numeric(1)`)\cr #' Optimal outcome. - assign_result = function(xdt, y) { + #' @param ... (`any`)\cr + #' ignored. + assign_result = function(xdt, y, ...) { stop("Abstract class") }, diff --git a/R/Optimizer.R b/R/Optimizer.R index b81db536..5102b6b6 100644 --- a/R/Optimizer.R +++ b/R/Optimizer.R @@ -166,19 +166,18 @@ Optimizer = R6Class("Optimizer", assign_result_default = function(inst) { assert_r6(inst, "OptimInstance") - res = inst$archive$best() + xydt = inst$archive$best() ids = inst$search_space$ids() - # workaround until ... works - if ("internal_tuned_values" %in% names(res)) ids = c(ids, "internal_tuned_values") - xdt = res[, ids, with = FALSE] + xdt = xydt[, ids, with = FALSE] if (inherits(inst, "OptimInstanceBatchMultiCrit") || inherits(inst, "OptimInstanceAsyncMultiCrit")) { - ydt = res[, inst$archive$cols_y, with = FALSE] - inst$assign_result(xdt, ydt) + ydt = xydt[, inst$archive$cols_y, with = FALSE] + # upstream packages might extract extra columns from xydt + inst$assign_result(xdt, ydt, xydt = xydt) } else { # unlist keeps name! - y = unlist(res[, inst$archive$cols_y, with = FALSE]) - inst$assign_result(xdt, y) + y = unlist(xydt[, inst$archive$cols_y, with = FALSE]) + inst$assign_result(xdt, y, xydt = xydt) } invisible(NULL) diff --git a/man/OptimInstance.Rd b/man/OptimInstance.Rd index e1b5381b..90bb285b 100644 --- a/man/OptimInstance.Rd +++ b/man/OptimInstance.Rd @@ -158,7 +158,7 @@ Printer. The \link{Optimizer} object writes the best found point and estimated performance value here. For internal use. \subsection{Usage}{ -\if{html}{\out{