The psychds package helps researchers organize their psychological and behavioral research data according to the Psych-DS standard. This vignette will walk you through:
Before using psychds, verify that all dependencies are properly installed:
library(psychds)
# Basic check
check_psychds_deps()
# Detailed check with version information
check_psychds_deps(detailed = TRUE)The detailed check will show:
The primary interface for psychds is an interactive Shiny application:
This opens a browser window with the dataset builder wizard.
Existing datasets can be validated without launching the app:
validate_dataset("path/to/my-dataset")
# JSON output for programmatic use
validate_dataset("path/to/my-dataset", json = TRUE)This runs the same official ‘Psych-DS’ validator used by the app, via a bundled script. It requires ‘Node.js’ (>= 18) to be installed and on your PATH; everything else, including the validation schemas, ships with the package, and no network access is needed.
A Psych-DS compliant dataset has the following structure:
my_dataset/
├── dataset_description.json # Required: Dataset metadata
├── README.md # Recommended: Human-readable description
├── data/ # Required: Contains data files
│ ├── study-exp1_data.csv
│ └── study-exp1_data.json # Sidecar with variable metadata
├── analysis/ # Optional
├── materials/ # Optional
└── results/ # Optional
This JSON file contains metadata about your dataset using Schema.org vocabulary:
{
"@context": "https://schema.org/",
"@type": "Dataset",
"name": "Visual Attention Experiment 2024",
"description": "A study examining visual attention in adults",
"author": [
{
"@type": "Person",
"givenName": "Jane",
"familyName": "Smith"
}
],
"variableMeasured": [
{
"@type": "PropertyValue",
"name": "participant_id",
"description": "Unique participant identifier"
}
]
}Psych-DS uses keyword-based filenames to describe data files:
| Keyword | Description | Example |
|---|---|---|
| study | Study or experiment name | study-attention |
| session | Session number | session-1 |
| subject | Participant identifier | subject-001 |
| task | Task name | task-stroop |
| run | Run number | run-01 |
Example:
study-attention_session-1_task-stroop_data.csv
If you encounter issues: