IRW Collections

Collections are labelled groupings of IRW tables. Ask for a type of data — randomized trials, Big Five inventories, anything with a Q matrix — and get back the tables, ready to fetch.

A table belongs to as many collections as apply: frac20 is in both math and q_matrix.

WarningPlease check a collection before relying on it

Membership is our judgment, and you should verify it for your own purposes. Most collections are assigned by a rule — the presence of a column, or a pattern matched against the construct name each table was annotated with. A pattern over free text will sometimes catch a table you would exclude, and miss one you would include. continuous_response is assigned by hand, which makes it a judgment of a different kind rather than a safer one. Nothing here has been checked table by table. Every membership records the basis on which it was decided — see irw_collection_members() — so you can inspect a collection and form your own view; please do so before using one as the sample for an analysis.

Coverage is also uneven. Collections built from the tag annotations searched only the 2,251 of 3,650 tables that carry tags, and tag coverage is much lower in the newer warehouses. 12 of the 22 collections below are marked tagged-subset-only for that reason: they are useful starting points, but they are not exhaustive, and they lean toward older tables. Treat them as “the ones we know of”, not “all of them”. The rest searched every documented table.

Corrections are welcome — open an issue on ben-domingue/irw.

Using a collection

Code
library(irw)

irw_collections()                    # what exists: kind, definition, coverage, size
tabs <- irw_collection("depression") # 70 table names, and a note on coverage

# Narrow to a modellable corpus. Note irw_filter()'s default density = c(0.5, 1),
# which is why 70 becomes 32 rather than the 41 that pass on sample size alone.
tabs <- irw_filter(collection = "depression", n_participants = c(500, Inf))

dat <- irw_fetch(tabs)               # named list, one long-format table each
irw_save_bibtex(tabs, output_file = "depression.bib")

# Cross-collection questions -- what no single filter argument reaches.
# Math assessments administered in booklets: linking and DIF work.
intersect(irw_collection("math"), irw_collection("multistage"))

# Note c(...) is a UNION, not an intersection:
irw_filter(collection = c("rct", "response_time"))

irw_collection_members(tables = "frac20")   # which collections is this table in?
Code
import irw

irw.collections()
tabs = irw.collection("depression")

tabs = irw.filter(collection="depression", n_participants=[500, None])
dat  = irw.fetch(tabs)               # dict keyed by table name

sorted(set(irw.collection("math", quiet=True)) &
       set(irw.collection("multistage", quiet=True)))

irw.filter(collection=["rct", "response_time"])   # union, not intersection
irw.collection_members(tables="frac20")

Study & instrument design

How the study was run, and what structure the data carries. Derived from the columns each table actually has, so these cover every documented table.
clustered
Clustered
Carries cluster_id: respondents are nested in groups.
81 tablesof all 3,650
continuous_response
Continuous response
Responses fall on a (near-)continuous scale rather than a small ordered set. Not derivable: item_format and n_categories disagree on most candidates, so membership is curated. Seeded from irw_site/continuous_scout_candidates.csv; see continuous_response.review.csv for unpromoted candidates.
19 tableshand-curated
intensive_longitudinal
Intensive longitudinal
Has both date and wave. Timestamped repeated measures: daily diaries, panel waves and experience sampling are all included, so this is not an EMA collection.
90 tablesof all 3,650
item_position
Item position
Carries position: administration order is recorded per response.
61 tablesof all 3,650
longitudinal
Longitudinal
Flagged longitudinal by 01_metadata.R. That flag greps the concatenated variable string, so it also matches names like cov_birthdate and cov_startdate; 9 of its members match only that way.
666 tablesof all 3,650
multistage
Multistage / booklet
Carries booklet or block_id: items were administered in structured blocks.
107 tablesof all 3,650
q_matrix
Q matrix
Carries qmatrix* columns, the IRW standard item-by-attribute encoding for cognitive diagnostic modeling (datastandard.md).
11 tablesof all 3,650
rater_mediated
Rater-mediated
Carries rater: responses are attributed to a judge, not only to a respondent.
29 tablesof all 3,650
rct
RCT
Carries a treat column: an experimental assignment is recorded alongside the responses.
178 tablesof all 3,650
response_time
Response time
Carries rt: per-response latencies are available.
147 tablesof all 3,650

Instrument family

Which measure was administered. These group together tables that record the same instrument under different names — 63 Big Five tables are spread across more than forty spellings of the construct name.
affect_panas
PANAS affect
The Positive and Negative Affect Schedule.
21 tablesof 2,251 tagged
big_five
Big Five / FFM
Five-factor and HEXACO personality inventories, including tables covering a single subscale.
63 tablesof 2,251 tagged
dark_triad
Dark Triad
Narcissism, Machiavellianism and psychopathy measures.
35 tablesof 2,251 tagged
intl_assessment
International assessments
Large-scale international assessments: PISA, TIMSS, PIRLS, NAEP.
33 tablesof 2,251 tagged
mindfulness
Mindfulness
Mindfulness inventories including FFMQ and MAAS.
20 tablesof 2,251 tagged
promis
PROMIS
The PROMIS instrument family.
33 tablesof 2,251 tagged
self_esteem
Self-esteem
Rosenberg and other self-esteem scales.
19 tablesof 2,251 tagged

Construct

What is being measured, across instruments.
anxiety
Anxiety
Anxiety scales including GAD-7 and STAI.
72 tablesof 2,251 tagged
depression
Depression
Depression scales including PHQ, CES-D, BDI and DASS.
70 tablesof 2,251 tagged
math
Mathematics
Mathematics attainment and closely related constructs.
71 tablesof 2,251 tagged
reading_vocab
Reading & vocabulary
Reading, vocabulary, lexical and spelling measures.
47 tablesof 2,251 tagged
wellbeing
Wellbeing
Wellbeing, life satisfaction and quality of life measures.
58 tablesof 2,251 tagged

How collections are built

Each collection is one row in a version-controlled registry carrying its definition and the rule that produces its membership — the presence of a column (treat for rct, qmatrix* for q_matrix), or a pattern over the recorded construct name. continuous_response is the one collection assembled by hand, because the available signals disagree too often for a rule to settle it.

Adding a collection is therefore a change to data, not to code, and every membership records the basis on which it was decided. That last point is deliberate: a rule-assigned membership and a hand-assigned one carry different weight, and both are open to being wrong, so the record of how a table got into a collection travels with the collection itself. See issue #1633.