Process a useSolver output of a successfully solved optimization problem to a list so it becomes humanly readable.
Usage
inspectSolution(
solverOut,
items,
idCol,
colNames = names(items),
colSums = TRUE
)Arguments
- solverOut
Object created by
useSolverfunction.- items
Original
data.framecontaining information on item level.- idCol
Column name in
itemscontaining item IDs. These will be used for matching to the solver output.- colNames
Which columns should be used from the
itemsdata.frame?- colSums
Should column sums be calculated in the output? Only works if all columns are numeric.
Value
A list with assembled blocks as entries. Rows are the individual items. A final row is added, containing
the sums of each column.
Details
This function merges the initial item pool information in items to the solver output in solverOut.
Relevant columns can be selected via colNames. Column sums within test forms are calculated if possible and
if colSum is set to TRUE.
Examples
## Example item pool
items <- data.frame(ID = 1:10,
itemValues = c(-4, -4, -2, -2, -1, -1, 20, 20, 0, 0))
## Test Assembly
usage <- itemUsageConstraint(nForms = 2, operator = "=",
targetValue = 1, itemIDs = items$ID)
perForm <- itemsPerFormConstraint(nForms = 2, operator = "=",
targetValue = 5, itemIDs = items$ID)
target <- minimaxObjective(nForms = 2,
itemValues = items$itemValues,
targetValue = 0, itemIDs = items$ID)
sol <- useSolver(allConstraints = list(usage, perForm, target),
solver = "lpSolve")
#> Optimal solution found.
## Inspect Solution
out <- inspectSolution(sol, items = items, idCol = 1, colNames = "itemValues")
