Skip to contents

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 useSolver function.

items

Original data.frame containing information on item level.

idCol

Column name in items containing item IDs. These will be used for matching to the solver output.

colNames

Which columns should be used from the items data.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")