Register-based research at DST
Who is this guide for, and what will you learn?
This guide takes you from a research question to a finished, exportable result using the Danish registers on the DST server. It assumes no prior register experience and only a little R.
New here? Start at phase 1 - Plan your study and follow the phases in order. Working on DARTER (project 708421)? Read DARTER - overview and pipeline first.
Looking for something specific? Search in the top right. The 🔍 box matches exact words; Search by meaning next to it also understands synonyms and Danish, for when you do not know what the thing is called here.
The phases of the guide
The guide is built as 14 phases, running from planning to export.
| Phase | Contents |
|---|---|
| 1 - Plan your study | Research question, key concepts and data model |
| 2 - R: the bare essentials | The minimum of R you need to get going |
| 3 - Log in to DST | Access to the server and the first overview |
| 4 - File types and loading | Parquet and SAS - formats and conversion |
| 5 - Extracting data step by step | The universal extraction pattern: read_register/open_dataset → filter → collect |
| 6 - First extraction | Your first real extraction with synthetic data |
| 7 - Inspect your data | Check structure, types and distributions before analysis |
| 8 - Find your registers | Find the right registers for exposure, outcome and covariates |
| 9 - Hospital contacts (LPR) | LPR2/LPR3 and ICD codes |
| 10 - Build your study population | Cohort, index date, in/exclusion, censoring and special designs |
| 11 - Extract variables | Extract outcomes, socioeconomics and comorbidity - filtered to the cohort |
| 12 - Assemble and prepare the dataset | Joins, pivots and handling missing data |
| 13 - Analysis | Tables, figures, regression, time-to-event, rates and sensitivity analyses |
| 14 - Export and repatriation | Get your results safely out of DST |
Look-ups - use as you go
These pages are not part of the numbered guide - jump here when you have a specific question.
| Page | Use it when you want to… |
|---|---|
| Search by meaning | find a page by synonym or by the Danish word, when the exact-match box comes up empty |
| Overview of registers | find the confirmed column names, types and join keys for each register |
| Find a variable | look up which register a given variable lives in |
| Format tables | translate codes to text (municipality, education and employment codes) with DST’s SAS format files |
| Parquet and fastreg | point fastreg at your registers, or convert SAS files to parquet |
| Functions: overview | look up a single function - what do filter(), collect(), %>%, left_join() do? |
| Good coding practice | structure, naming and reproducible code |
| DST pitfalls | check the traps where your code runs and the answer is quietly wrong |
| Troubleshooting | work out a red error message, or an empty result, and find where to ask |
| Algorithms & special packages | ready-made algorithms (OSDC, NMI) to derive variables |
| Learning resources | courses and books for R, epidemiology and statistics |
Do you have reusable code for register-based research - e.g. a SEPLINE algorithm, weighted medication use, family linkage, or episode construction? We would love to hear from you, even if it is a draft. Get in touch →