Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

MC Test Analysis

This R package provides a nice set of interfaces via Shiny for the analysis and review of multiple choice tests. View full package documentation at

Try Online

You can try out the Shiny web interface online at, which demonstrates the test results explorer interface but cannot produce the PDF or HTML reports. For the complete features, you can install the package and use the interface locally (without have to upload your data) by following the instructions below.

Table of contents

Required Software

You need to download and install the latest version of the following software. If you already have recent versions of R, RStudio and LaTeX (optional) installed, you can skip ahead to the section on installing the MCTestAnalysis library.


Using the MCTestAnalysis package does not require any R programming. If you are interested in learning to program in R, RStudio have collated some excellent resources for Learning R Programming on their webpage.

To install:


  • Click the "Download R for ..." link for your OS (Linux, Mac, Windows)

  • Click the link for the base distribution. This package was built and tested on R 3.3.2, although both this package and R may have been updated.


RStudio is an IDE (an application that supports the development and use of a language) for R. The MCTestAnalysis package is best used from within RStudio, but the user only needs to be able to find the Console window to run the few commands described below.

For a quick introduction and reference for the RStudio IDE, RStudio publishes an up-to-date RStudio cheatsheet. The RStudio Essentials Webinar Series is also a good place to start learning about the RStudio IDE.

To install:


LaTeX is required in order to create PDF reports. The package will fall back on HTML reports if pdflatex is not installed. The HTML version of the report works well on screens but does not print nicely.

If you'd like to output the report as well-behaved, nicely-printing PDF, a LaTeX distribution is required.

To install:

  • Windows (MiKTeX)

  • Mac OS X (MacTeX)

  • Ubuntu (texlive)

    • Install texlive via the package manager or on the command line with sudo apt-get install texlive-core.
    • Also install fonts and extra things with sudo apt-get install texlive-fonts-recommended texlive-latex-recommended.
    • Or alternatively install the full texlive package with sudo apt-get install texlive-latex-extra.



On Mac OS X or Unix-based systems, install this package by running the following commands inside RStudio or the R command line:



On Windows, the current version of devtools doesn't correctly install all package dependencies, so they need to be installed manually before installing the MCTestAnalysis package.

Copy and paste the following command into the RStudio console or the R command line to install the MCTestAnalysis package dependencies.

install.packages(c("devtools", "dplyr", "ggplot2", "shiny", "miniUI",
                   "ltm", "psych", "psychometric", "reshape2", "tibble",
                   "DT", "rmarkdown", "backports", "pander", "gridExtra",

Then run the following to complete the installation of the MCTestAnalysis package.



Open RStudio or R on the command line or GUI and run the following commands:


# Launch test exploration interface

# Create a test analysis report

When running explore() a browser window will open with the MC Test Analysis exploration application. The report() function will launch a window within RStudio to guide the user through the creation of a PDF report.

Data format

This package requires both an Answer Key and a table of student responses. An example of each table is provided, in the preferred format, in the inst/extdata folder of this repo, or from links on the "Import" tab of the explore() or report() interfaces.

A detailed overview of the required data format is available at Additional example test results and answer key CSV files are also available.