Metadata for IRW tables

We supplement the data in the IRW tables with various kinds of metadata about the tables. For clarity, we separately describe the qualitative and quantitative metadata.

Quantitative Metadata

A variety of features of the tables (e.g., the number of rows) are pre-computed (using this code) to help users select datasets with desirable features. We provide information on:

  • n_responses The number of rows in the table.
  • n_categories The number of unique values of the resp column in the table. [Note: This needs to be treated with some care given that NA values are considered a level.]
  • n_participants The number of objects being measured.
  • n_items The number of probes being used to measure.
  • responses_per_participant The average number of responses for an object of measurement.
  • responses_per_item The average number of responses for a probe.
  • density The average number of responses for an individual measurement object to an individual probe.
  • variables The names of all the columns in the table.

Qualitative Metadata

The IRW tables have been annotated with additional information about the sample of objects being measured and the nature of the probes being used to measure. For each table, we describe:

  • age range The age range of the measurement objects (when they are humans).
  • child age (for child-focused studies) Additional information on the age range of child-focused studies.
  • sample A description of the sample of objects (e.g., is it a convenience sample?).
  • construct type A classification of the construct type (e.g., is this a cognitive measure?).
  • measurement tool The type of measure (e.g., are these ratings? collected responses?).
  • item format The format of the item.
  • primary language(s) The language used in the assessment.
  • construct name A formal description of the construct (from the original source).

Some degree of subjectivity should be expected. These tags come from three different places, and the difference matters if you plan to filter on one: most were written by human raters, age range and child age are now computed from each table’s own cov_age column, and four of the columns also carry values written by an automated tagger reading the study’s source document. Coverage, measured accuracy and the limits of that measurement are set out in Tag Quality.

Collections

Tables are also grouped into collections — labelled sets such as rct, big_five, depression or q_matrix — so that a request for a type of data returns the tables directly. A table belongs to as many collections as apply. See Browse IRW Collections for the full list, or irw_collections() / irw.collections().

One caveat matters when using them. Collections built from the qualitative tags above could only search the tables whose tags include a construct name — about half the corpus, and proportionally far fewer among recently added tables. Those collections are marked tagged-subset-only, and they should be read as “the ones we know of” rather than “all of them”. Collections derived from the quantitative metadata (rct, q_matrix, response_time and the rest of the design group) searched every documented table.

Querying IRW tables

Given the volume of tables in the IRW and their heterogeneity, being able to effectively query IRW tables is essential. To do so, we recommend using the filtering function we provide in both the R and Python packages for IRW (available as irw::irw_filter() in R and irw.filter() in Python). Information on the R function is available here, and for Python here Below we provide a variety of simple use cases; once a user has identified the appropriate tables, irw::irw_fetch() (R) or irw.fetch() (Python) can be used to easily download them.

Code
library(irw)

irw_filter(n_participants=c(100000,Inf)) #Those tables with more than 100000 participants (using default density filter)
irw_filter(n_participants=c(100000,Inf),density=NULL) #All tables with more than 100000 participants
irw_filter(n_categories=c(10,Inf),density=NULL) #Tables with responses in 10 or more categories
irw_filter(var='rt') #Tables with response time data
irw_filter(age_range="Child (<18y)") #Tables with child-focused data
irw_filter(collection="rct") #Tables from randomized trials
irw_collection("big_five") #The table names in one collection, with a note on its coverage
Code
import irw

irw.filter(n_participants=[100000,None]) #Those tables with more than 100000 participants (using default density filter)
irw.filter(n_participants=[100000,None],density=None) #All tables with more than 100000 participants
irw.filter(n_categories=[10,None],density=None) #Tables with responses in 10 or more categories
irw.filter(var='rt') #Tables with response time data
irw.filter(age_range="Child (<18y)") #Tables with child-focused data
irw.filter(collection="rct") #Tables from randomized trials
irw.collection("big_five") #The table names in one collection, with a note on its coverage