Data Management and Analysis of Tests

A system for the management, assessment, and psychometric analysis of data from educational and psychological tests. Developed at Cito, The Netherlands, with subsidy from the Dutch Ministry of Education, Culture, and Science.

Dexter is an R package for psychometric analysis of data from educational and psychological tests. Dexter typically works with project database files saved on disk.



If you encounter a bug, please post a minimal reproducible example on github. We post news and examples on a blog, it's also the place for general questions.


# verbAggrRules and verbAggrData are example datasets provided with dexter
db = start_new_project(verbAggrRules, "verbAggression.db")
add_booklet(db, verbAggrData, booklet_id = "verb_agg")
# Classical test theory
tia = tia_tables(db)
booklet_id nItems alpha meanP meanRit meanRir maxTestScore N
verb_agg 24 0.888 0.339 0.527 0.468 48 316
booklet_id item_id meanScore sdScore maxScore pvalue rit rir n
verb_agg S1DoCurse 1.082 0.808 2 0.541 0.582 0.519 316
verb_agg S1DoScold 0.832 0.817 2 0.416 0.651 0.596 316
verb_agg S1DoShout 0.468 0.710 2 0.234 0.520 0.460 316
verb_agg S1WantCurse 1.123 0.828 2 0.562 0.537 0.468 316
verb_agg S1WantScold 0.930 0.852 2 0.465 0.593 0.528 316
verb_agg S1WantShout 0.712 0.778 2 0.356 0.529 0.464 316
# IRT, extended nominal response model
f = fit_enorm(db)
item_id item_score beta SE_b
S1DoCurse 1 -1.3422140 0.1541565
S1DoCurse 2 -0.6375015 0.1418423
S1DoScold 1 -0.6702036 0.1429057
S1DoScold 2 -0.2589855 0.1579467
S1DoShout 1 0.3254326 0.1480166
S1DoShout 2 0.3687574 0.2099654
# ability estimates per person
abl = ability(db, parms = f)
booklet_id person_id sumScore theta
verb_agg dxP1 13 -1.0218323
verb_agg dxP10 9 -1.4832759
verb_agg dxP100 14 -0.9204799
verb_agg dxP101 0 -Inf
verb_agg dxP102 12 -1.1276084
verb_agg dxP103 8 -1.6191967
# ability estimates without item S1DoScold
abl2 = ability(db, parms = f, item_id != "S1DoScold")
# plausible values
pv = plausible_values(db, parms = f, nPV = 5)
booklet_id person_id sumScore PV1 PV2 PV3 PV4 PV5
verb_agg dxP1 13 -0.8830828 -0.7066814 -0.7703465 -1.0441590 -0.8918823
verb_agg dxP10 9 -1.5388849 -1.0014150 -1.7249607 -1.3372498 -1.5627987
verb_agg dxP100 14 -0.6678893 -1.4039775 -0.6161149 -0.9249503 -0.7607182
verb_agg dxP101 0 -2.3034185 -3.0623911 -2.3793639 -3.1658178 -3.3999772
verb_agg dxP102 12 -1.0434515 -1.5317991 -1.1518701 -1.0103475 -1.0057779
verb_agg dxP103 8 -2.0467553 -1.5357100 -2.0598186 -1.2366479 -1.7367032


Contributions are welcome but please check with us first about what you would like to contribute.


dexter 0.8.3

  • correction of a bug in 0.8.2 which caused coef.prms to fail with calibration method Bayes

dexter 0.8.2

  • new functions information() and expected_score() for tests and items in the ENORM.

  • change in the algorithm for MLE estimation method in ability and ability_tables. The new algorithm is more precise so small changes in (the lower digits of) computed theta values may occur with respect to previous versions of dexter.

  • corrected a bug in the reporting of standard errors for Bayesian estimation of the ENORM. The SE's reported in previous versions of dexter were too high.

  • corrected bug in plot for DIF (item labels were reversed) introduced in 0.8.0

dexter 0.8.1

  • significant speed increases in plausible_values, plausible_scores, ability and ability_tables

  • added plot method for the extended nominal response model

  • new function add_response_data() for importing normalized data

dexter 0.8.0

  • profiles() and profile_tables() functions added for analysis of individual deviation profiles (misfit) compared to the fitted model.

  • bugfix for solaris

  • You may want to take a look at the new sister package, dextergui

dexter 0.7.0

  • support for RSQLite release 2.1.0+ which broke dexter 0.6.0.

  • probability_to_pass() function added for equating to a reference test that is connected to a target test.

dexter 0.6.0

  • ability_tables() function added to generate score transformation tables for arbitrary subsets of items. ability() and ability_tables() can now also take Jeffreys prior and variatons of the normal prior and can optionally output standard errors.

  • plausible_scores() function added to generate scores on arbitrary itemsets (or the entire bank).

  • Updates to documentation.

dexter 0.5.1

  • plausible_values() can now work with covariates.

  • fit_enorm() can optionally take fixed_parameters into account.

  • Significant speed increases in profile_plot, iTIA and iModels and minor speed increases in other functions.

  • Further includes more user control over plotting parameters, updates to documentation, several bugfixes and some smaller updates.

dexter 0.4.4

  • included Rdpack in Imports at the request of CRAN, and fixed 4 minor bugs

dexter 0.4.2

We go straight from version 0.1.7 to version 0.4.2 in a major new release. The functionality envisaged for two other related packages, enorm and roger, has now been all incorporated into dexter.

  • The database has been completely rewritten. Databases created with 0.1.7 can be imported but are no longer maintained.

  • Many functions now support flexible subsetting of data through a predicate expression; furthermore, the data source can be either the dexter database (more usual), or a data frame or tibble. The latter can be useful in simple simulations or in some non-standard situations.

  • Basic test and item analysis has been extended with two interactive tools based on shiny, and with an exploratory tool to search for DIF.

  • Version 0.4.2 estimates the Extended NOminal Response Model (ENORM) by either CML or a Gibbs sampler, computes person scores by either MLE, EAP, or plausible values, and provides a new test for the hypothesis of no true individual differences. In addition, it supports a method for standard settings known as 3DC.

  • Several vignettes have been added to explain the new features in detail.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.8.4 by Ivailo Partchev, 19 days ago

Report a bug at

Browse source code at

Authors: Gunter Maris , Timo Bechger , Jesse Koops , Ivailo Partchev

Documentation:   PDF Manual  

Task views: Psychometric Models and Methods

GPL-3 license

Imports DBI, tidyr, tibble, colorspace, shiny, shinyBS, shinydashboard, DT, fastmatch, rlang, dplyr, dbplyr, rprintf, RColorBrewer, graphics, grDevices, methods, utils

Depends on RSQLite

Suggests knitr, rmarkdown, latticeExtra, testthat, calibrate, ggplot2, Cairo

Imported by dexterMST.

Depended on by dextergui.

See at CRAN