Skip to contents

📌 Overview

irw provides an interface to access datasets from the Item Response Warehouse (IRW).


Explore Available Datasets

Before fetching data, you can explore the available datasets and their metadata.

List all datasets and their metadata:

irw_list_tables()
irw_info()
irw_info("4thgrade_math_sirt")

Find Datasets by Criteria

Filter datasets based on key attributes.

Example: Filter by respondent count and density range:

irw_filter(n_participants = c(100, 1000), density = c(0.1, 0.5))

Find datasets with rater-based scoring:

irw_filter(var = "rt")

Combine multiple filters:

irw_filter(n_participants = c(100, 10000), var = "cov_", density = c(0.1, 0.8))

Fetch Datasets

Retrieve datasets directly into R for analysis.

Fetch a single dataset:

swmd_mokken <- irw_fetch("swmd_mokken")
str(swmd_mokken)

Fetch multiple datasets:

datasets <- irw_fetch(c("fractals_rating", "spelling2pronounce_edwards2023"))
print(names(datasets))

Fetch datasets that match specific filters:

matching_tables <- irw_filter(var = "rater", density = NULL)
metadata <- irw_metadata()
metadata[metadata$table %in% matching_tables, ]

matching_tables <- irw_filter(var = "rater", density = NULL, responses_per_item = c(0, 1000))
datasets <- irw_fetch(matching_tables)
print(names(datasets))

Pin a Version for Reproducibility

IRW grows and gets corrected: tables are added, and errors found in published tables are fixed. A script that fetches by name alone will therefore not necessarily return the same data next year. Pin the corpus to an IRW version and it will.

irw_use_version(332)                       # every fetch below reads v332
swmd_mokken <- irw_fetch("swmd_mokken")    # v332's copy, today and next year

The IRW version number names one exact combination of all eleven Redivis datasets that make up IRW, so it is the thing to cite in a paper. Call irw_use_version() with no argument at the start of a project to pin today’s version and print the number to record:

irw_use_version()      # "Reading IRW v332 ... 11 dataset(s) pinned."
irw_get_version()      # what the session is reading, dataset by dataset
irw_reset_version()    # back to the current release

The pin covers metadata and item text as well as response data, and holds for the R session. A table added to IRW after the pinned version is an error rather than a quiet fetch from the current release — mixing versions would defeat the point.

You can also look a version up without reading it:

irw_version()                # the newest version and its eleven Redivis tags
irw_version(version = 332)   # exactly what v332 held
irw_version("2026-08-01")    # what was live on a date

Cite the number rather than the date. Redivis overwrote its own release timestamps for the older warehouse shards during a platform migration, so dates before 21 July 2026 resolve only approximately and say so; version numbers are always exact.


Download Datasets

Save datasets locally.

Save as CSV:

irw_download("gilbert_meta_48")

Save dataset metadata as a BibTeX citation:

irw_save_bibtex("gilbert_meta_48")