Skip to contents
library(hyperion)
#> 
#> 
#> ── pharos configuration ────────────────────────────────────────────────────────
#>  pharos.toml found: /data/user-homes/tariq/projects/prism-pkgdocs-build/installed-pkgs/2026-03-02/hyperion.tables_0.3.0/vignettes/pharos.toml
#> ── hyperion options ────────────────────────────────────────────────────────────
#>  hyperion.significant_number_display : 4
#> ── hyperion nonmem object options ──────────────────────────────────────────────
#>  hyperion.nonmem_model.show_included_columns : FALSE
#>  hyperion.nonmem_summary.rse_threshold : 50
#>  hyperion.nonmem_summary.shrinkage_threshold : 30
library(hyperion.tables)

library(gt)
library(flextable)
library(officer)

data_dir <- system.file("extdata", package = "hyperion.tables")
model_dir <- file.path(data_dir, "models", "onecmt")
model_run <- "run003"

Rendering and extending tables

hyperion.tables renders tables through a renderer-agnostic intermediate called HyperionTable. The table data is produced once from a TableSpec, then any renderer (gt/flextable/custom) can format and display it consistently.

Renderers call apply_formatting() internally, so the same rendering rules apply across outputs.

Pipeline overview

Here’s what happens when you run:

params |>
  apply_table_spec(spec, info) |>
  add_summary_info(mod_sum) |>
  make_parameter_table()
  1. apply_table_spec() enriches the raw parameter data with transforms, CI bounds, section labels, and attaches table_spec. It does not create display strings.
  2. add_summary_info() attaches model summary metadata for footnotes.
  3. make_parameter_table() builds a HyperionTable, which captures labels, hide/show rules, CI merge specs, footnotes, and other display intent.
  4. render_to_gt() / render_to_flextable() call apply_formatting() to:
    • format numeric columns
    • build the variability display column (if requested)
    • merge CI bounds (if enabled)
    • apply missing-value text

This keeps formatting centralized and consistent across renderers while keeping the underlying data pipeline clean and composable.

Build a HyperionTable and render it

Render rules live on TableSpec:

  • ci controls CI merging and missing-value display.
  • n_sigfig controls numeric precision.
  • missing_text + missing_apply_to control NA substitution.
spec <- TableSpec(
  sections = section_rules(
    kind == "THETA" ~ "Structural model parameters",
    kind == "OMEGA" & diagonal ~ "Interindividual variance parameters",
    kind == "OMEGA" & !diagonal ~ "Interindividual covariance parameters",
    kind == "SIGMA" ~ "Residual error",
    TRUE ~ "Other"
  ),
  title = paste(model_run, "Parameters")
) |>
    set_spec_transforms(omega = "cv")

run003 <- read_model(file.path(model_dir, paste0(model_run, ".mod")))

hyperion_table <- get_parameters(run003) |>
  apply_table_spec(spec, get_model_parameter_info(run003)) |>
  make_parameter_table(output = "data")

hyperion_table
#> <hyperion.tables::HyperionTable>
#>  @ data            :'data.frame':    9 obs. of  20 variables:
#>  .. $ name         : chr  "TVCL" "TVV" "TVKA" "OM1 TVCL" ...
#>  .. $ symbol       : chr  "$\\theta_{1}$" "$\\theta_{2}$" "$\\theta_{3}$" "$\\Omega_{(1,1)}$" ...
#>  .. $ unit         : chr  "L/hr" "L" "1/hr" NA ...
#>  .. $ estimate     : num  1.325 40.163 1.212 0.122 0.124 ...
#>  .. $ variability  : chr  NA NA NA NA ...
#>  .. $ ci_low       : num  1.1069 34.5982 0.9966 0.0236 0.0519 ...
#>  .. $ ci_high      : num  1.544 45.727 1.427 0.221 0.196 ...
#>  .. $ rse          : num  8.41 7.07 9.06 41.16 29.66 ...
#>  .. $ shrinkage    : num  NA NA NA 13.14 4.63 ...
#>  .. $ fixed        : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
#>  .. $ section      : Factor w/ 5 levels "Structural model parameters",..: 1 1 1 2 2 2 3 4 4
#>  .. $ kind         : chr  "THETA" "THETA" "THETA" "OMEGA" ...
#>  .. $ random_effect: chr  NA NA NA "ETA1" ...
#>  .. $ diagonal     : logi  NA NA NA TRUE TRUE TRUE ...
#>  .. $ transforms   : chr  "Identity" "Identity" "Identity" "LogNormal" ...
#>  .. $ cv           : num  NA NA NA 36.1 36.3 ...
#>  .. $ corr         : num  NA NA NA NA NA ...
#>  .. $ sd           : num  NA NA NA 0.35 0.352 ...
#>  .. $ dt_all       : chr  "Identity" "Identity" "Identity" "identity" ...
#>  .. $ dt_cv        : chr  "Identity" "Identity" "Identity" "LogNormal" ...
#>  .. - attr(*, "table_spec")= <hyperion.tables::TableSpec>
#>  ..  ..@ title             : chr "run003 Parameters"
#>  ..  ..@ parameter_names   : <hyperion.tables::ParameterNameOptions>
#>  .. .. .. @ source                 : chr "name"
#>  .. .. .. @ append_omega_with_theta: logi TRUE
#>  ..  ..@ columns           : chr [1:9] "name" "symbol" "unit" "estimate" ...
#>  ..  ..@ add_columns       : NULL
#>  ..  ..@ drop_columns      : NULL
#>  ..  ..@ hide_empty_columns: logi TRUE
#>  ..  ..@ sections          :List of 5
#>  .. .. .. $ : language ~(kind == "THETA" ~ "Structural model parameters")
#>  .. .. ..  ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
#>  .. .. .. $ : language ~(kind == "OMEGA" & diagonal ~ "Interindividual variance parameters")
#>  .. .. ..  ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
#>  .. .. .. $ : language ~(kind == "OMEGA" & !diagonal ~ "Interindividual covariance parameters")
#>  .. .. ..  ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
#>  .. .. .. $ : language ~(kind == "SIGMA" ~ "Residual error")
#>  .. .. ..  ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
#>  .. .. .. $ : language ~(TRUE ~ "Other")
#>  .. .. ..  ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
#>  .. .. .. - attr(*, "class")= chr [1:2] "quosures" "list"
#>  ..  ..@ section_filter    : NULL
#>  ..  ..@ row_filter        : Named list()
#>  .. .. .. - attr(*, "class")= chr [1:2] "quosures" "list"
#>  ..  ..@ display_transforms:List of 3
#>  .. .. .. $ theta: chr "all"
#>  .. .. .. $ omega: chr "cv"
#>  .. .. .. $ sigma: chr "all"
#>  ..  ..@ variability_rules :List of 5
#>  .. .. .. $ : language ~(fixed ~ "(Fixed)")
#>  .. .. ..  ..- attr(*, ".Environment")=<environment: 0x574aac2f9058> 
#>  .. .. .. $ : language ~(!is.na(corr) ~ sprintf("(Corr = %s)", corr))
#>  .. .. ..  ..- attr(*, ".Environment")=<environment: 0x574aac2f9058> 
#>  .. .. .. $ : language ~(!is.na(cv) & cv != 0 ~ sprintf("(CV = %s%%)", cv))
#>  .. .. ..  ..- attr(*, ".Environment")=<environment: 0x574aac2f9058> 
#>  .. .. .. $ : language ~(!is.na(sd) ~ sprintf("(SD = %s)", sd))
#>  .. .. ..  ..- attr(*, ".Environment")=<environment: 0x574aac2f9058> 
#>  .. .. .. $ : language ~(TRUE ~ NA_character_)
#>  .. .. ..  ..- attr(*, ".Environment")=<environment: 0x574aac2f9058> 
#>  .. .. .. - attr(*, "class")= chr [1:2] "quosures" "list"
#>  ..  ..@ n_sigfig          : num 3
#>  ..  ..@ n_decimals_ofv    : num 3
#>  ..  ..@ pvalue_scientific : logi FALSE
#>  ..  ..@ pvalue_threshold  : NULL
#>  ..  ..@ ci                : <hyperion.tables::CIOptions>
#>  .. .. .. @ level       : num 0.95
#>  .. .. .. @ merge       : logi TRUE
#>  .. .. .. @ pattern     : chr "[%s, %s]"
#>  .. .. .. @ missing_text: chr "-"
#>  ..  ..@ missing_text      : chr ""
#>  ..  ..@ missing_apply_to  : chr "all"
#>  ..  ..@ footnote_order    : chr [1:3] "summary_info" "equations" "abbreviations"
#>  ..  ..@ .columns_provided : logi FALSE
#>  @ table_type      : chr "parameter"
#>  @ groupname_col   : chr "section"
#>  @ hide_cols       : chr [1:10] "kind" "random_effect" "diagonal" "transforms" "cv" "corr" ...
#>  @ col_labels      :List of 9
#>  .. $ name       : chr "Parameter"
#>  .. $ symbol     : chr "Symbol"
#>  .. $ unit       : chr "Unit"
#>  .. $ estimate   : chr "Estimate"
#>  .. $ ci_low     : chr "95% CI"
#>  .. $ ci_high    : chr "95% CI"
#>  .. $ variability: chr ""
#>  .. $ rse        : chr "RSE (%)"
#>  .. $ shrinkage  : chr "Shrinkage (%)"
#>  @ title           : chr "run003 Parameters"
#>  @ spanners        : list()
#>  @ numeric_cols    : chr [1:5] "estimate" "ci_low" "ci_high" "rse" "shrinkage"
#>  @ n_sigfig        : num 3
#>  @ ci              : <hyperion.tables::CIOptions>
#>  .. @ level       : num 0.95
#>  .. @ merge       : logi TRUE
#>  .. @ pattern     : chr "[%s, %s]"
#>  .. @ missing_text: chr "-"
#>  @ ci_merges       :List of 1
#>  .. $ :List of 3
#>  ..  ..$ ci_low : chr "ci_low"
#>  ..  ..$ ci_high: chr "ci_high"
#>  ..  ..$ pattern: chr "[{1}, {2}]"
#>  @ ci_missing_rows : int [1:9] 1 2 3 4 5 6 7 8 9
#>  @ missing_text    : chr ""
#>  @ missing_apply_to: chr "all"
#>  @ bold_locations  : chr [1:3] "column_labels" "title" "row_groups"
#>  @ borders         : list()
#>  @ footnotes       :List of 5
#>  .. $ :List of 2
#>  ..  ..$ content    : 'from_markdown' chr "95% CI: $\\mathrm{Estimate} \\pm z_{0.025} \\cdot \\mathrm{SE}$"
#>  ..  ..$ is_markdown: logi TRUE
#>  .. $ :List of 2
#>  ..  ..$ content    : 'from_markdown' chr "CV% for log-normal $\\Omega$: $\\sqrt{\\exp(\\mathrm{Estimate}) - 1} \\times 100$"
#>  ..  ..$ is_markdown: logi TRUE
#>  .. $ :List of 2
#>  ..  ..$ content    : chr "Abbreviations:"
#>  ..  ..$ is_markdown: logi FALSE
#>  .. $ :List of 2
#>  ..  ..$ content    : chr "CI = confidence intervals; RSE = relative standard error; SE = standard error;"
#>  ..  ..$ is_markdown: logi FALSE
#>  .. $ :List of 2
#>  ..  ..$ content    : chr "CV = coefficient of variation; SD = standard deviation; Corr = correlation"
#>  ..  ..$ is_markdown: logi FALSE
#>  @ source_spec     : <hyperion.tables::TableSpec>
#>  .. @ title             : chr "run003 Parameters"
#>  .. @ parameter_names   : <hyperion.tables::ParameterNameOptions>
#>  .. .. @ source                 : chr "name"
#>  .. .. @ append_omega_with_theta: logi TRUE
#>  .. @ columns           : chr [1:9] "name" "symbol" "unit" "estimate" "variability" ...
#>  .. @ add_columns       : NULL
#>  .. @ drop_columns      : NULL
#>  .. @ hide_empty_columns: logi TRUE
#>  .. @ sections          :List of 5
#>  .. .. $ : language ~(kind == "THETA" ~ "Structural model parameters")
#>  .. ..  ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
#>  .. .. $ : language ~(kind == "OMEGA" & diagonal ~ "Interindividual variance parameters")
#>  .. ..  ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
#>  .. .. $ : language ~(kind == "OMEGA" & !diagonal ~ "Interindividual covariance parameters")
#>  .. ..  ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
#>  .. .. $ : language ~(kind == "SIGMA" ~ "Residual error")
#>  .. ..  ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
#>  .. .. $ : language ~(TRUE ~ "Other")
#>  .. ..  ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
#>  .. .. - attr(*, "class")= chr [1:2] "quosures" "list"
#>  .. @ section_filter    : NULL
#>  .. @ row_filter        : Named list()
#>  .. .. - attr(*, "class")= chr [1:2] "quosures" "list"
#>  .. @ display_transforms:List of 3
#>  .. .. $ theta: chr "all"
#>  .. .. $ omega: chr "cv"
#>  .. .. $ sigma: chr "all"
#>  .. @ variability_rules :List of 5
#>  .. .. $ : language ~(fixed ~ "(Fixed)")
#>  .. ..  ..- attr(*, ".Environment")=<environment: 0x574aac2f9058> 
#>  .. .. $ : language ~(!is.na(corr) ~ sprintf("(Corr = %s)", corr))
#>  .. ..  ..- attr(*, ".Environment")=<environment: 0x574aac2f9058> 
#>  .. .. $ : language ~(!is.na(cv) & cv != 0 ~ sprintf("(CV = %s%%)", cv))
#>  .. ..  ..- attr(*, ".Environment")=<environment: 0x574aac2f9058> 
#>  .. .. $ : language ~(!is.na(sd) ~ sprintf("(SD = %s)", sd))
#>  .. ..  ..- attr(*, ".Environment")=<environment: 0x574aac2f9058> 
#>  .. .. $ : language ~(TRUE ~ NA_character_)
#>  .. ..  ..- attr(*, ".Environment")=<environment: 0x574aac2f9058> 
#>  .. .. - attr(*, "class")= chr [1:2] "quosures" "list"
#>  .. @ n_sigfig          : num 3
#>  .. @ n_decimals_ofv    : num 3
#>  .. @ pvalue_scientific : logi FALSE
#>  .. @ pvalue_threshold  : NULL
#>  .. @ ci                : <hyperion.tables::CIOptions>
#>  .. .. @ level       : num 0.95
#>  .. .. @ merge       : logi TRUE
#>  .. .. @ pattern     : chr "[%s, %s]"
#>  .. .. @ missing_text: chr "-"
#>  .. @ missing_text      : chr ""
#>  .. @ missing_apply_to  : chr "all"
#>  .. @ footnote_order    : chr [1:3] "summary_info" "equations" "abbreviations"
#>  .. @ .columns_provided : logi FALSE

hyperion.tables includes two built-in renderers:

render_to_gt(hyperion_table)
run003 Parameters
Parameter Symbol Unit Estimate 95% CI RSE (%) Shrinkage (%)
Structural model parameters
TVCL θ1\theta_{1} L/hr 1.33 [1.11, 1.54] 8.41
TVV θ2\theta_{2} L 40.2 [34.6, 45.7] 7.07
TVKA θ3\theta_{3} 1/hr 1.21 [0.997, 1.43] 9.06
Interindividual variance parameters
OM1 TVCL Ω(1,1)\Omega_{(1,1)} 0.122 (CV = 36.1%) [0.0236, 0.221] 41.2 13.1
OM2 TVV Ω(2,2)\Omega_{(2,2)} 0.124 (CV = 36.3%) [0.0519, 0.196] 29.7 4.63
OM3 TVKA Ω(3,3)\Omega_{(3,3)} 0.122 (CV = 36.1%) [0.0121, 0.233] 46.0 24.3
Interindividual covariance parameters
OM1,2 TVCL, TVV Ω(2,1)\Omega_{(2,1)} 0.0745 (Corr = 0.606) [0.0131, 0.136] 42.0
Residual error
SIG1 Σ(1,1)\Sigma_{(1,1)} 0.0375 (SD = 0.194) [0.0257, 0.0494] 16.1 14.4
SIG2 Σ(2,2)\Sigma_{(2,2)} 0.00527 (SD = 0.0726) [-0.0128, 0.0233] 175 14.4
95% CI: Estimate±z0.025SE\mathrm{Estimate} \pm z_{0.025} \cdot \mathrm{SE}
CV% for log-normal Ω\Omega: exp(Estimate)1×100\sqrt{\exp(\mathrm{Estimate}) - 1} \times 100
Abbreviations:
CI = confidence intervals; RSE = relative standard error; SE = standard error;
CV = coefficient of variation; SD = standard deviation; Corr = correlation
# saving flextable as images strips equations 
render_to_flextable(hyperion_table) |> 
    autofit() |> 
    to_html(type = "table") |> 
    cat()

run003 Parameters

Parameter

Symbol

Unit

Estimate

95% CI

RSE (%)

Shrinkage (%)

Structural model parameters

TVCL

θ1_{1}

L/hr

1.33

[1.11, 1.54]

8.41

TVV

θ2_{2}

L

40.2

[34.6, 45.7]

7.07

TVKA

θ3_{3}

1/hr

1.21

[0.997, 1.43]

9.06

Interindividual variance parameters

OM1 TVCL

Ω(1,1)_{(1,1)}

0.122

(CV = 36.1%)

[0.0236, 0.221]

41.2

13.1

OM2 TVV

Ω(2,2)_{(2,2)}

0.124

(CV = 36.3%)

[0.0519, 0.196]

29.7

4.63

OM3 TVKA

Ω(3,3)_{(3,3)}

0.122

(CV = 36.1%)

[0.0121, 0.233]

46.0

24.3

Interindividual covariance parameters

OM1,2 TVCL, TVV

Ω(2,1)_{(2,1)}

0.0745

(Corr = 0.606)

[0.0131, 0.136]

42.0

Residual error

SIG1

Σ(1,1)_{(1,1)}

0.0375

(SD = 0.194)

[0.0257, 0.0494]

16.1

14.4

SIG2

Σ(2,2)_{(2,2)}

0.00527

(SD = 0.0726)

[-0.0128, 0.0233]

175

14.4

95% CI: Estimate±z0.025SE z_{0.025}

CV% for log-normal Ωexp(Estimate)1×100

Abbreviations:

CI = confidence intervals; RSE = relative standard error; SE = standard error;

CV = coefficient of variation; SD = standard deviation; Corr = correlation

Update render rules and re-render

To change formatting, rebuild the HyperionTable with a new TableSpec and re-render it. You can also inspect the formatted data directly.

spec <- TableSpec(
  sections = section_rules(
    kind == "THETA" ~ "Structural model parameters",
    kind == "OMEGA" & diagonal ~ "Interindividual variance parameters",
    kind == "OMEGA" & !diagonal ~ "Interindividual covariance parameters",
    kind == "SIGMA" ~ "Residual error",
    TRUE ~ "Other"
  ),
  title = paste(model_run, "Parameters"),
  n_sigfig = 4,
  ci = CIOptions(
    merge = TRUE,
    pattern = "(%s; %s)",
    missing_text = "NA"
  ),
  missing_text = "NA",
  missing_apply_to = "numeric"
) |>
  set_spec_transforms(omega = "cv")

hyperion_table <- get_parameters(run003) |>
  apply_table_spec(spec, get_model_parameter_info(run003)) |>
  make_parameter_table(output = "data")

formatted <- apply_formatting(hyperion_table)
names(formatted)
#> [1] "section"     "name"        "symbol"      "unit"        "estimate"   
#> [6] "variability" "ci_low"      "rse"         "shrinkage"
render_to_gt(hyperion_table)
run003 Parameters
Parameter Symbol Unit Estimate 95% CI RSE (%) Shrinkage (%)
Structural model parameters
TVCL θ1\theta_{1} L/hr 1.325 NA (1.107; 1.544) 8.411 NA
TVV θ2\theta_{2} L 40.16 NA (34.60; 45.73) 7.069 NA
TVKA θ3\theta_{3} 1/hr 1.212 NA (0.9966; 1.427) 9.057 NA
Interindividual variance parameters
OM1 TVCL Ω(1,1)\Omega_{(1,1)} NA 0.1223 (CV = 36.07%) (0.02365; 0.2210) 41.16 13.14
OM2 TVV Ω(2,2)\Omega_{(2,2)} NA 0.1239 (CV = 36.31%) (0.05186; 0.1959) 29.66 4.631
OM3 TVKA Ω(3,3)\Omega_{(3,3)} NA 0.1224 (CV = 36.09%) (0.01211; 0.2327) 45.97 24.34
Interindividual covariance parameters
OM1,2 TVCL, TVV Ω(2,1)\Omega_{(2,1)} NA 0.07454 (Corr = 0.6055) (0.01313; 0.1360) 42.04 NA
Residual error
SIG1 Σ(1,1)\Sigma_{(1,1)} NA 0.03754 (SD = 0.1937) (0.02571; 0.04937) 16.08 14.42
SIG2 Σ(2,2)\Sigma_{(2,2)} NA 0.005272 (SD = 0.07261) (-0.01278; 0.02333) 174.7 14.42
95% CI: Estimate±z0.025SE\mathrm{Estimate} \pm z_{0.025} \cdot \mathrm{SE}
CV% for log-normal Ω\Omega: exp(Estimate)1×100\sqrt{\exp(\mathrm{Estimate}) - 1} \times 100
Abbreviations:
CI = confidence intervals; RSE = relative standard error; SE = standard error;
CV = coefficient of variation; SD = standard deviation; Corr = correlation
head(formatted)
#>                               section     name            symbol unit estimate
#> 1         Structural model parameters     TVCL     $\\theta_{1}$ L/hr    1.325
#> 2         Structural model parameters      TVV     $\\theta_{2}$    L    40.16
#> 3         Structural model parameters     TVKA     $\\theta_{3}$ 1/hr    1.212
#> 4 Interindividual variance parameters OM1 TVCL $\\Omega_{(1,1)}$ <NA>   0.1223
#> 5 Interindividual variance parameters  OM2 TVV $\\Omega_{(2,2)}$ <NA>   0.1239
#> 6 Interindividual variance parameters OM3 TVKA $\\Omega_{(3,3)}$ <NA>   0.1224
#>     variability            ci_low   rse shrinkage
#> 1          <NA>    (1.107; 1.544) 8.411      <NA>
#> 2          <NA>    (34.60; 45.73) 7.069      <NA>
#> 3          <NA>   (0.9966; 1.427) 9.057      <NA>
#> 4 (CV = 36.07%) (0.02365; 0.2210) 41.16     13.14
#> 5 (CV = 36.31%) (0.05186; 0.1959) 29.66     4.631
#> 6 (CV = 36.09%) (0.01211; 0.2327) 45.97     24.34

Extending with a custom renderer

Custom renderers should accept a HyperionTable, call apply_formatting(), and then build output using your chosen table package.

render_custom <- function(table) {
  data <- apply_formatting(table)
  # Replace with your rendering package of choice
    gt::gt(data, groupname_col = table@groupname_col)
}

render_custom(hyperion_table)
name symbol unit estimate variability ci_low rse shrinkage
Structural model parameters
TVCL $\theta_{1}$ L/hr 1.325 NA (1.107; 1.544) 8.411 NA
TVV $\theta_{2}$ L 40.16 NA (34.60; 45.73) 7.069 NA
TVKA $\theta_{3}$ 1/hr 1.212 NA (0.9966; 1.427) 9.057 NA
Interindividual variance parameters
OM1 TVCL $\Omega_{(1,1)}$ NA 0.1223 (CV = 36.07%) (0.02365; 0.2210) 41.16 13.14
OM2 TVV $\Omega_{(2,2)}$ NA 0.1239 (CV = 36.31%) (0.05186; 0.1959) 29.66 4.631
OM3 TVKA $\Omega_{(3,3)}$ NA 0.1224 (CV = 36.09%) (0.01211; 0.2327) 45.97 24.34
Interindividual covariance parameters
OM1,2 TVCL, TVV $\Omega_{(2,1)}$ NA 0.07454 (Corr = 0.6055) (0.01313; 0.1360) 42.04 NA
Residual error
SIG1 $\Sigma_{(1,1)}$ NA 0.03754 (SD = 0.1937) (0.02571; 0.04937) 16.08 14.42
SIG2 $\Sigma_{(2,2)}$ NA 0.005272 (SD = 0.07261) (-0.01278; 0.02333) 174.7 14.42

What if you skip apply_formatting()?

If you render directly from the raw HyperionTable@data, you will see unformatted numeric values and separate CI columns (if present). This is useful for debugging, but not recommended for final output.

raw_data <- hyperion_table@data
gt::gt(raw_data, groupname_col = hyperion_table@groupname_col)
name symbol unit estimate variability ci_low ci_high rse shrinkage fixed kind random_effect diagonal transforms cv corr sd dt_all dt_cv
Structural model parameters
TVCL $\theta_{1}$ L/hr 1.32542000 NA 1.10691538 1.54392462 8.411221 NA FALSE THETA NA NA Identity NA NA NA Identity Identity
TVV $\theta_{2}$ L 40.16250000 NA 34.59818185 45.72681815 7.068758 NA FALSE THETA NA NA Identity NA NA NA Identity Identity
TVKA $\theta_{3}$ 1/hr 1.21172000 NA 0.99661983 1.42682017 9.057125 NA FALSE THETA NA NA Identity NA NA NA Identity Identity
Interindividual variance parameters
OM1 TVCL $\Omega_{(1,1)}$ NA 0.12234200 NA 0.02364723 0.22103677 41.159536 13.14400 FALSE OMEGA ETA1 TRUE LogNormal 36.07500 NA 0.3497740 identity LogNormal
OM2 TVV $\Omega_{(2,2)}$ NA 0.12387800 NA 0.05185618 0.19589982 29.663459 4.63131 FALSE OMEGA ETA2 TRUE LogNormal 36.31498 NA 0.3519630 identity LogNormal
OM3 TVKA $\Omega_{(3,3)}$ NA 0.12241200 NA 0.01210895 0.23271505 45.974333 24.33760 FALSE OMEGA ETA3 TRUE LogNormal 36.08596 NA 0.3498740 identity LogNormal
Interindividual covariance parameters
OM1,2 TVCL, TVV $\Omega_{(2,1)}$ NA 0.07454330 NA 0.01312783 0.13595877 42.035971 NA FALSE OMEGA ETA1:ETA2 FALSE LogNormal 27.81942 0.605513 NA identity LogNormal
Residual error
SIG1 $\Sigma_{(1,1)}$ NA 0.03753710 NA 0.02570885 0.04936535 16.077241 14.42190 FALSE SIGMA EPS1 TRUE Identity NA NA 0.1937450 Identity Identity
SIG2 $\Sigma_{(2,2)}$ NA 0.00527228 NA -0.01278087 0.02332543 174.705441 14.42190 FALSE SIGMA EPS2 TRUE Identity NA NA 0.0726105 Identity Identity

Notes

  • The render rules are shared across renderers to keep tables consistent.
  • make_parameter_table(output = "data") returns the HyperionTable.
  • If you need tighter control, use apply_formatting() and pass the returned data frame to your custom renderer.