Skip to contents

The prefix system inherited from the original CORR analysis binder. The prefix encodes both the type of analysis and the folder the job belongs in.

Usage

hvti_taxonomy()

Value

A data frame with columns prefix, name, folder, description and umbrella. prefix is NA for the one row that names an artifact kind rather than an analysis type. umbrella is logical: TRUE for the legacy umbrella prefixes rf and rfsrc, for which no template is owed; FALSE for every other prefix; NA for the artifact row.

Details

This is data rather than documentation on purpose. The same table lived in a README and drifted from the files it described; as a function it is checked by the test suite against the templates actually present.

Folder names are load-bearing. Row order is not, folder order included, as of 2026-09-03.

A template directory and a numbered study directory are both spelled <NN>_<folder>, as in 20_distributions; a legacy study keeps the bare name, as in distributions, and study_dir resolves either. The name after the digits, or the bare name, must be a folder in this table. hvtiRtemplates tests that every template directory names one, so renaming or removing a folder that holds a template turns its CI red. The digits are assigned, not derived from this table. They are hardcoded in study_dir's layout map here and in the template directory names there, and estimates is 90 though it is the table's fifth folder, because it holds saved output rather than jobs. Reordering rows, or folders, changes nothing downstream.

Adding or renaming a folder is not free on the study side. study_dir knows only the folders in its own layout map, and a test compares that map's names with unique(hvti_taxonomy()$folder), so a folder added here and not there turns this package's CI red rather than becoming one study_dir() refuses as unknown. The test compares names only; the new folder's digits still have to be assigned in the map.

Templates carry no ordinal. They were once named <NN>.<MM>-<prefix>, with NN taken from this table's folder order through a hardcoded map in hvtiRtemplates; the ordinal and that map were both retired on 2026-09-03 (hvtiRtemplates:dev/specs/2026-09-03-template-identity-design.md). A template is now <prefix>[-<qualifier>].qmd, and the catalog that lists them is hvtiRtemplates' own inst/extdata/templates.json.

History, kept because it is why the digits are assigned: moving hs out of analyses in 1.1.6 shifted bh from sixth to fifth while its shipped filename stayed 04.06, and nothing caught it. bh was renumbered 04.05. Identity derived from a row position breaks when an upstream row moves. A job named 04.06-bh, from hvtiRtemplates before its 1.1.0, is the same template as 04.05-bh.

hs is filed under graphs, which reads oddly for a job named "setup". It was moved there from analyses on 2026-08-29 on the corpus rather than on the name: all ten tp.hs.* templates in the SAS library and ten of the eleven R hs jobs in /studies sit in graphs/. It computes patient-level predictions that the plotting jobs beside it consume, in the setup / uses_setup pairing the corpus uses throughout. See hvtiRtemplates:dev/specs/2026-08-29-hs-template-design.md.

si and mi are two prefixes, not one, and that is the point. 223 studies call single mean imputation, 326 call multiple imputation, and 18 call both. They are different methods with different inferential properties, and 18 studies running both means one prefix could not label them unambiguously. mi is safe here only because it is paired: standing alone it reads as multiple imputation to a statistician, so using it for the single-imputation job would misname exactly the thing the split exists to distinguish.

Neither replaces vars, whose description still says "imputations" on purpose. vars is the job that enhances a dataset with temporary variables, imputations and propensity terms together – porting vars.sas found mean imputation across 394 variables inside it. si and mi name jobs whose whole purpose is imputation. A job that imputes as one step among several is vars; a job that exists to impute is si or mi.

folder names two different things. For most rows it is the analysis type's home folder, matched to a job prefix. One row, estimates, is an artifact kind rather than a job type: it holds serialized fits and cached results written by one job and read by a later one in the same set, and no analysis produces it directly. That row's prefix is NA, not a string, because there is no prefix to assign it.

The random forest family splits on the OUTCOME axis, not the package axis. rfs, rfc and rfr name the survival, classification and regression outcomes, which is the split bh/bl/bc/bn/bq/br and pm/rm/cm already use. It is a rename of a distinction the corpus draws already, not a new one imposed: the jobs carry the outcome in field two today, as tp.rfsrc.survival.R and its siblings.

rf and rfsrc are retained as legacy umbrella rows. They named the same set as each other, on the package axis, and neither is templated. They stay in the table so a census can still resolve the corpus that uses them, which is not small: rfsrc measures 131 studies and 2,295 jobs, more than rf (47), rfs (25) and rfc (19) combined, twice over. Deleting the rows was rejected on two grounds. hvti_prefix_folds cannot express the demotion, because a fold is one-to-one and rfsrc spans all three outcomes, so there is no single prefix to fold it into. And an absent prefix reads to the census as one nobody documented, which is the opposite of what a superseded name means. Demoted here means never templated, and since 2026-09-18 it is machine-readable as well as worded: the umbrella column is TRUE on exactly these two rows, so a consumer can exempt them without hard-coding a list. The two rows keep distinct descriptions so a census hit on a legacy job can still say which spelling it used.

The demotion is recorded here, and only here. Until 2026-09-19 hvtiR's job catalog also marked rf and rfsrc with a retire disposition, which coincided with this demotion by decision. That catalog has moved to hvtiRtemplates as its template catalog, read by hvtiRtemplates::template_catalog(), where every row is a template owed in that package. It has no retire disposition, and rf and rfsrc have no row at all; its guard that every taxonomy prefix has a catalog row exempts them by reading the umbrella column above. hvtiR::jobs() was removed in hvtiR 1.2.0.

sid and vt are filed under analyses with the rest of the family, and compose on the rf* jobs rather than replacing them. The rfc/rfs folder contradiction is deliberately NOT settled here: the taxonomy says analyses while the SAS library files them under graphs and documents, and the 2026-08-27 census found the same contradiction corpus-wide for ac/hz. It is a systemic open question with its own spec owed, and the ML batch is not blocked waiting on it. See hvtiRtemplates:dev/specs/2026-09-17-ml-family-roadmap-design.md.

Examples

head(hvti_taxonomy())
#>   prefix                name      folder
#> 1     bd               Build    datasets
#> 2   vars           Variables    datasets
#> 3     dt          Data check    datasets
#> 4     si   Single imputation    datasets
#> 5     mi Multiple imputation    datasets
#> 6     dc         Descriptive descriptive
#>                                                           description umbrella
#> 1                     assembles raw sources into the analytic dataset    FALSE
#> 2 macro enhancing the dataset with temp vars, imputations, propensity    FALSE
#> 3                                     initial QC of the build dataset    FALSE
#> 4        mean imputation of missing covariates; one completed dataset    FALSE
#> 5       m completed datasets for pooled analysis; not a variant of si    FALSE
#> 6                       Table 1s, covariate summaries, balance tables    FALSE