Skip to contents

Introduction

ClinicoPathDescriptives is a comprehensive R package designed for descriptive analysis in clinicopathological research. It provides both programmatic R functions and a graphical user interface through jamovi, making advanced statistical analysis accessible to researchers with varying levels of programming experience.

Key Features

  • Descriptive Statistics: Generate comprehensive “Table One” summaries
  • Cross-tabulations: Create contingency tables with appropriate statistical tests
  • Visualization Tools: Age pyramids, alluvial diagrams, Venn diagrams, and more
  • Treatment Response Analysis: Waterfall and swimmer plots for oncology research
  • Data Quality Assessment: Benford’s law analysis for fraud detection
  • Dual Interface: Use in R or through jamovi’s point-and-click interface

Installation

Install from GitHub

# Install development version
if (!require("remotes")) install.packages("remotes")
remotes::install_github("sbalci/ClinicoPathDescriptives")

Install as jamovi Module

Download the .jmo file from Releases and install in jamovi via: jamovi menu > Modules > Install from file

Loading the Package

library(ClinicoPath)
library(dplyr)    # For data manipulation
library(ggplot2)  # For additional plotting

Example Dataset

The package includes a comprehensive histopathology dataset with 250 cancer patients and 38 variables including demographics, pathological features, biomarkers, and outcomes.

# Load the example dataset
data(histopathology)

# Examine the structure
str(histopathology, give.attr = FALSE)
#> spc_tbl_ [250 × 38] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
#>  $ ID                  : num [1:250] 1 2 3 4 5 6 7 8 9 10 ...
#>  $ Name                : chr [1:250] "Tonisia" "Daniyah" "Naviana" "Daerion" ...
#>  $ Sex                 : chr [1:250] "Male" "Female" "Male" "Male" ...
#>  $ Age                 : num [1:250] 27 36 65 51 58 53 33 26 25 68 ...
#>  $ Race                : chr [1:250] "White" "White" "White" "White" ...
#>  $ PreinvasiveComponent: chr [1:250] "Present" "Absent" "Absent" "Absent" ...
#>  $ LVI                 : chr [1:250] "Present" "Absent" "Absent" "Present" ...
#>  $ PNI                 : chr [1:250] "Absent" "Absent" "Absent" "Absent" ...
#>  $ LastFollowUpDate    : chr [1:250] "2019.10.22 00:00:00" "2019.06.22 00:00:00" "2019.08.22 00:00:00" "2019.03.22 00:00:00" ...
#>  $ Death               : chr [1:250] "YANLIŞ" "DOĞRU" "DOĞRU" "YANLIŞ" ...
#>  $ Group               : chr [1:250] "Control" "Treatment" "Control" "Treatment" ...
#>  $ Grade               : num [1:250] 2 2 1 3 2 2 1 2 3 3 ...
#>  $ TStage              : num [1:250] 4 4 4 4 1 4 2 3 4 4 ...
#>  $ Anti-X-intensity    : num [1:250] 3 2 2 3 3 3 2 2 1 2 ...
#>  $ Anti-Y-intensity    : num [1:250] 1 1 2 3 3 2 2 2 1 3 ...
#>  $ LymphNodeMetastasis : chr [1:250] "Present" "Absent" "Absent" "Absent" ...
#>  $ Valid               : chr [1:250] "YANLIŞ" "DOĞRU" "YANLIŞ" "DOĞRU" ...
#>  $ Smoker              : chr [1:250] "YANLIŞ" "YANLIŞ" "DOĞRU" "YANLIŞ" ...
#>  $ Grade_Level         : chr [1:250] "high" "low" "low" "high" ...
#>  $ SurgeryDate         : chr [1:250] "2019.07.08 00:00:00" "2019.03.18 00:00:00" "2019.05.18 00:00:00" "2018.10.24 00:00:00" ...
#>  $ DeathTime           : chr [1:250] "Within1Year" "Within1Year" "Within1Year" "Within1Year" ...
#>  $ int                 : chr [1:250] "2019-07-08 UTC--2019-10-22 UTC" "2019-03-18 UTC--2019-06-22 UTC" "2019-05-18 UTC--2019-08-22 UTC" "2018-10-24 UTC--2019-03-22 UTC" ...
#>  $ OverallTime         : num [1:250] 3.5 3.1 3.1 4.9 3.3 9.3 6.3 9 5.8 9.9 ...
#>  $ Outcome             : num [1:250] 0 1 1 0 0 0 1 1 1 0 ...
#>  $ Mortality5yr        : chr [1:250] "Alive" "Dead" "Dead" "Alive" ...
#>  $ Rater 1             : num [1:250] 0 1 1 0 0 0 1 1 1 0 ...
#>  $ Rater 2             : num [1:250] 0 0 0 0 0 0 0 0 0 0 ...
#>  $ Rater 3             : num [1:250] 1 1 1 0 1 1 1 1 1 1 ...
#>  $ Rater A             : num [1:250] 3 2 3 3 2 3 1 1 2 1 ...
#>  $ Rater B             : num [1:250] 3 2 3 3 2 3 1 1 2 1 ...
#>  $ New Test            : num [1:250] 0 0 0 0 0 0 1 0 0 0 ...
#>  $ Golden Standart     : num [1:250] 0 0 0 0 0 0 0 0 0 0 ...
#>  $ MeasurementA        : num [1:250] -1.63432 0.37071 0.01585 -1.23584 -0.00141 ...
#>  $ MeasurementB        : num [1:250] 0.611 0.554 0.742 0.622 0.527 ...
#>  $ Disease Status      : chr [1:250] "Ill" "Ill" "Healthy" "Ill" ...
#>  $ Measurement1        : num [1:250] 0.387 0.829 0.159 2.447 0.847 ...
#>  $ Measurement2        : num [1:250] 1.8654 0.5425 0.0701 2.4071 0.5564 ...
#>  $ Outcome2            : chr [1:250] "DOD" "DOOC" "AWD" "AWOD" ...
# Quick overview of key variables
histopathology %>%
  select(Age, Sex, Grade, TStage, Group, Outcome, OverallTime) %>%
  head(10)
#> # A tibble: 10 × 7
#>      Age Sex    Grade TStage Group     Outcome OverallTime
#>    <dbl> <chr>  <dbl>  <dbl> <chr>       <dbl>       <dbl>
#>  1    27 Male       2      4 Control         0         3.5
#>  2    36 Female     2      4 Treatment       1         3.1
#>  3    65 Male       1      4 Control         1         3.1
#>  4    51 Male       3      4 Treatment       0         4.9
#>  5    58 Female     2      1 Treatment       0         3.3
#>  6    53 Female     2      4 Treatment       0         9.3
#>  7    33 Male       1      2 Treatment       1         6.3
#>  8    26 Male       2      3 Treatment       1         9  
#>  9    25 Female     3      4 Treatment       1         5.8
#> 10    68 Female     3      4 Control         0         9.9

Basic Descriptive Analysis

Table One

Generate a comprehensive descriptive summary table - the cornerstone of clinical research manuscripts:

# Basic Table One
tableone(
  data = histopathology,
  vars = c("Age", "Sex", "Grade", "TStage", "LVI", "PNI")
)
#> 
#>  TABLE ONE
#> 
#> character(0)
#>                     
#>                      Overall      
#>   n                    250        
#>   Age (mean (SD))    49.44 (13.81)
#>   Sex = Male (%)       128 (51.4) 
#>   Grade (mean (SD))   2.10 (0.83) 
#>   TStage (mean (SD))  3.05 (1.02) 
#>   LVI = Present (%)    106 (42.6) 
#>   PNI = Present (%)     83 (33.3)

Continuous Variables Summary

Generate detailed summaries for continuous variables:

summarydata(
  data = histopathology,
  vars = c("Age", "OverallTime", "MeasurementA"),
  date_vars = NULL,
  grvar = "Grade"
)
#> <div id="dfieexombw" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
#>   <style>@import url("https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
#> #dfieexombw table {
#>   font-family: Lato, system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
#>   -webkit-font-smoothing: antialiased;
#>   -moz-osx-font-smoothing: grayscale;
#> }
#> 
#> #dfieexombw thead, #dfieexombw tbody, #dfieexombw tfoot, #dfieexombw tr, #dfieexombw td, #dfieexombw th {
#>   border-style: none;
#> }
#> 
#> #dfieexombw p {
#>   margin: 0;
#>   padding: 0;
#> }
#> 
#> #dfieexombw .gt_table {
#>   display: table;
#>   border-collapse: collapse;
#>   line-height: normal;
#>   margin-left: auto;
#>   margin-right: auto;
#>   color: #333333;
#>   font-size: 16px;
#>   font-weight: normal;
#>   font-style: normal;
#>   background-color: #FFFFFF;
#>   width: auto;
#>   border-top-style: solid;
#>   border-top-width: 3px;
#>   border-top-color: #FFFFFF;
#>   border-right-style: none;
#>   border-right-width: 2px;
#>   border-right-color: #D3D3D3;
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #A8A8A8;
#>   border-left-style: none;
#>   border-left-width: 2px;
#>   border-left-color: #D3D3D3;
#> }
#> 
#> #dfieexombw .gt_caption {
#>   padding-top: 4px;
#>   padding-bottom: 4px;
#> }
#> 
#> #dfieexombw .gt_title {
#>   color: #333333;
#>   font-size: 24px;
#>   font-weight: initial;
#>   padding-top: 4px;
#>   padding-bottom: 4px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   border-bottom-color: #FFFFFF;
#>   border-bottom-width: 0;
#> }
#> 
#> #dfieexombw .gt_subtitle {
#>   color: #333333;
#>   font-size: 85%;
#>   font-weight: initial;
#>   padding-top: 3px;
#>   padding-bottom: 5px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   border-top-color: #FFFFFF;
#>   border-top-width: 0;
#> }
#> 
#> #dfieexombw .gt_heading {
#>   background-color: #FFFFFF;
#>   text-align: left;
#>   border-bottom-color: #FFFFFF;
#>   border-left-style: none;
#>   border-left-width: 1px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 1px;
#>   border-right-color: #D3D3D3;
#> }
#> 
#> #dfieexombw .gt_bottom_border {
#>   border-bottom-style: solid;
#>   border-bottom-width: 0px;
#>   border-bottom-color: #D3D3D3;
#> }
#> 
#> #dfieexombw .gt_col_headings {
#>   border-top-style: solid;
#>   border-top-width: 0px;
#>   border-top-color: #D3D3D3;
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#>   border-left-style: none;
#>   border-left-width: 1px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 1px;
#>   border-right-color: #D3D3D3;
#> }
#> 
#> #dfieexombw .gt_col_heading {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   font-size: 80%;
#>   font-weight: bolder;
#>   text-transform: uppercase;
#>   border-left-style: none;
#>   border-left-width: 1px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 1px;
#>   border-right-color: #D3D3D3;
#>   vertical-align: bottom;
#>   padding-top: 5px;
#>   padding-bottom: 6px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   overflow-x: hidden;
#> }
#> 
#> #dfieexombw .gt_column_spanner_outer {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   font-size: 80%;
#>   font-weight: bolder;
#>   text-transform: uppercase;
#>   padding-top: 0;
#>   padding-bottom: 0;
#>   padding-left: 4px;
#>   padding-right: 4px;
#> }
#> 
#> #dfieexombw .gt_column_spanner_outer:first-child {
#>   padding-left: 0;
#> }
#> 
#> #dfieexombw .gt_column_spanner_outer:last-child {
#>   padding-right: 0;
#> }
#> 
#> #dfieexombw .gt_column_spanner {
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#>   vertical-align: bottom;
#>   padding-top: 5px;
#>   padding-bottom: 5px;
#>   overflow-x: hidden;
#>   display: inline-block;
#>   width: 100%;
#> }
#> 
#> #dfieexombw .gt_spanner_row {
#>   border-bottom-style: hidden;
#> }
#> 
#> #dfieexombw .gt_group_heading {
#>   padding-top: 8px;
#>   padding-bottom: 8px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   font-size: 80%;
#>   font-weight: bolder;
#>   text-transform: uppercase;
#>   border-top-style: solid;
#>   border-top-width: 2px;
#>   border-top-color: #D3D3D3;
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#>   border-left-style: none;
#>   border-left-width: 1px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 1px;
#>   border-right-color: #D3D3D3;
#>   vertical-align: middle;
#>   text-align: left;
#> }
#> 
#> #dfieexombw .gt_empty_group_heading {
#>   padding: 0.5px;
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   font-size: 80%;
#>   font-weight: bolder;
#>   border-top-style: solid;
#>   border-top-width: 2px;
#>   border-top-color: #D3D3D3;
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#>   vertical-align: middle;
#> }
#> 
#> #dfieexombw .gt_from_md > :first-child {
#>   margin-top: 0;
#> }
#> 
#> #dfieexombw .gt_from_md > :last-child {
#>   margin-bottom: 0;
#> }
#> 
#> #dfieexombw .gt_row {
#>   padding-top: 7px;
#>   padding-bottom: 7px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   margin: 10px;
#>   border-top-style: solid;
#>   border-top-width: 1px;
#>   border-top-color: #F6F7F7;
#>   border-left-style: none;
#>   border-left-width: 1px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 1px;
#>   border-right-color: #D3D3D3;
#>   vertical-align: middle;
#>   overflow-x: hidden;
#> }
#> 
#> #dfieexombw .gt_stub {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   font-size: 80%;
#>   font-weight: bolder;
#>   text-transform: uppercase;
#>   border-right-style: solid;
#>   border-right-width: 2px;
#>   border-right-color: #D3D3D3;
#>   padding-left: 5px;
#>   padding-right: 5px;
#> }
#> 
#> #dfieexombw .gt_stub_row_group {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   font-size: 100%;
#>   font-weight: initial;
#>   text-transform: inherit;
#>   border-right-style: solid;
#>   border-right-width: 2px;
#>   border-right-color: #D3D3D3;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   vertical-align: top;
#> }
#> 
#> #dfieexombw .gt_row_group_first td {
#>   border-top-width: 2px;
#> }
#> 
#> #dfieexombw .gt_row_group_first th {
#>   border-top-width: 2px;
#> }
#> 
#> #dfieexombw .gt_summary_row {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   text-transform: inherit;
#>   padding-top: 8px;
#>   padding-bottom: 8px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#> }
#> 
#> #dfieexombw .gt_first_summary_row {
#>   border-top-style: solid;
#>   border-top-color: #D3D3D3;
#> }
#> 
#> #dfieexombw .gt_first_summary_row.thick {
#>   border-top-width: 2px;
#> }
#> 
#> #dfieexombw .gt_last_summary_row {
#>   padding-top: 8px;
#>   padding-bottom: 8px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#> }
#> 
#> #dfieexombw .gt_grand_summary_row {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   text-transform: inherit;
#>   padding-top: 8px;
#>   padding-bottom: 8px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#> }
#> 
#> #dfieexombw .gt_first_grand_summary_row {
#>   padding-top: 8px;
#>   padding-bottom: 8px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   border-top-style: double;
#>   border-top-width: 6px;
#>   border-top-color: #D3D3D3;
#> }
#> 
#> #dfieexombw .gt_last_grand_summary_row_top {
#>   padding-top: 8px;
#>   padding-bottom: 8px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   border-bottom-style: double;
#>   border-bottom-width: 6px;
#>   border-bottom-color: #D3D3D3;
#> }
#> 
#> #dfieexombw .gt_striped {
#>   background-color: #FAFAFA;
#> }
#> 
#> #dfieexombw .gt_table_body {
#>   border-top-style: solid;
#>   border-top-width: 2px;
#>   border-top-color: #D3D3D3;
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#> }
#> 
#> #dfieexombw .gt_footnotes {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   border-bottom-style: none;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#>   border-left-style: none;
#>   border-left-width: 2px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 2px;
#>   border-right-color: #D3D3D3;
#> }
#> 
#> #dfieexombw .gt_footnote {
#>   margin: 0px;
#>   font-size: 90%;
#>   padding-top: 4px;
#>   padding-bottom: 4px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#> }
#> 
#> #dfieexombw .gt_sourcenotes {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   border-bottom-style: none;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#>   border-left-style: none;
#>   border-left-width: 2px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 2px;
#>   border-right-color: #D3D3D3;
#> }
#> 
#> #dfieexombw .gt_sourcenote {
#>   font-size: 12px;
#>   padding-top: 4px;
#>   padding-bottom: 4px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#> }
#> 
#> #dfieexombw .gt_left {
#>   text-align: left;
#> }
#> 
#> #dfieexombw .gt_center {
#>   text-align: center;
#> }
#> 
#> #dfieexombw .gt_right {
#>   text-align: right;
#>   font-variant-numeric: tabular-nums;
#> }
#> 
#> #dfieexombw .gt_font_normal {
#>   font-weight: normal;
#> }
#> 
#> #dfieexombw .gt_font_bold {
#>   font-weight: bold;
#> }
#> 
#> #dfieexombw .gt_font_italic {
#>   font-style: italic;
#> }
#> 
#> #dfieexombw .gt_super {
#>   font-size: 65%;
#> }
#> 
#> #dfieexombw .gt_footnote_marks {
#>   font-size: 75%;
#>   vertical-align: 0.4em;
#>   position: initial;
#> }
#> 
#> #dfieexombw .gt_asterisk {
#>   font-size: 100%;
#>   vertical-align: 0;
#> }
#> 
#> #dfieexombw .gt_indent_1 {
#>   text-indent: 5px;
#> }
#> 
#> #dfieexombw .gt_indent_2 {
#>   text-indent: 10px;
#> }
#> 
#> #dfieexombw .gt_indent_3 {
#>   text-indent: 15px;
#> }
#> 
#> #dfieexombw .gt_indent_4 {
#>   text-indent: 20px;
#> }
#> 
#> #dfieexombw .gt_indent_5 {
#>   text-indent: 25px;
#> }
#> 
#> #dfieexombw .katex-display {
#>   display: inline-flex !important;
#>   margin-bottom: 0.75em !important;
#> }
#> 
#> #dfieexombw div.Reactable > div.rt-table > div.rt-thead > div.rt-tr.rt-tr-group-header > div.rt-th-group:after {
#>   height: 0px !important;
#> }
#> </style>
#>   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
#>   <thead>
#>     <tr class="gt_heading">
#>       <td colspan="7" class="gt_heading gt_title gt_font_normal" style>.</td>
#>     </tr>
#>     <tr class="gt_heading">
#>       <td colspan="7" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>250 rows x 4 cols</td>
#>     </tr>
#>     <tr class="gt_col_headings">
#>       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="type"></th>
#>       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="name">Column</th>
#>       <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" scope="col" id="value">Plot Overview</th>
#>       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="n_missing">Missing</th>
#>       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Mean">Mean</th>
#>       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Median">Median</th>
#>       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="SD">SD</th>
#>     </tr>
#>   </thead>
#>   <tbody class="gt_table_body">
#>     <tr><td headers="type" class="gt_row gt_left"><svg aria-hidden="true" role="img" viewBox="0 0 640 512" style="height:20px;width:25px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#f18e2c;overflow:visible;position:relative;"><path d="M576 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM352 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM96 416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32 14.3 32 32z"/></svg></td>
#> <td headers="name" class="gt_row gt_left" style="font-weight: bold;">Age</td>
#> <td headers="value" class="gt_row gt_center"><?xml version='1.0' encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt' height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'><defs>  <style type='text/css'><![CDATA[    .svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {      fill: none;      stroke: #000000;      stroke-linecap: round;      stroke-linejoin: round;      stroke-miterlimit: 10.00;    }    .svglite text {      white-space: pre;    }    .svglite g.glyphgroup path {      fill: inherit;      stroke: none;    }  ]]></style></defs><rect width='100%' height='100%' style='stroke: none; fill: none;'/><defs>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='>    <rect x='0.00' y='0.00' width='141.73' height='34.02' />  </clipPath></defs><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'></g><defs>  <clipPath id='cpMS4wMHwxNDAuNzR8MS4wMHwyMy41Ng=='>    <rect x='1.00' y='1.00' width='139.74' height='22.56' />  </clipPath></defs><g clip-path='url(#cpMS4wMHwxNDAuNzR8MS4wMHwyMy41Ng==)'><rect x='7.35' y='20.48' width='15.88' height='3.08' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='23.23' y='3.05' width='15.88' height='20.51' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='39.11' y='5.61' width='15.88' height='17.94' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='54.99' y='1.00' width='15.88' height='22.56' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='70.87' y='2.02' width='15.88' height='21.53' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='86.75' y='5.61' width='15.88' height='17.94' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='102.63' y='1.51' width='15.88' height='22.05' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='118.50' y='21.50' width='15.88' height='2.05' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><circle cx='18.68' cy='23.04' r='0.46' style='stroke-width: 0.71; stroke: none;' /><circle cx='18.68' cy='23.04' r='0.46' style='stroke-width: 0.71; stroke: none;' /><line x1='69.63' y1='23.56' x2='69.63' y2='1.00' style='stroke-width: 1.07; stroke-linecap: butt;' /></g><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><polyline points='1.00,23.56 140.74,23.56 ' style='stroke-width: 0.75;' /><polyline points='19.68,26.39 19.68,23.56 ' style='stroke-width: 0.75;' /><polyline points='119.58,26.39 119.58,23.56 ' style='stroke-width: 0.75;' /><text x='19.68' y='33.36' text-anchor='middle' style='font-size: 6.00px; font-weight: 0; font-family: "Courier";' textLength='25.16px' lengthAdjust='spacingAndGlyphs'>25 auto</text><text x='119.58' y='33.36' text-anchor='middle' style='font-size: 6.00px; font-weight: 0; font-family: "Courier";' textLength='25.16px' lengthAdjust='spacingAndGlyphs'>73 auto</text></g></g></svg></td>
#> <td headers="n_missing" class="gt_row gt_right">0.4%</td>
#> <td headers="Mean" class="gt_row gt_right">49.4</td>
#> <td headers="Median" class="gt_row gt_right">49.0</td>
#> <td headers="SD" class="gt_row gt_right">13.8</td></tr>
#>     <tr><td headers="type" class="gt_row gt_left gt_striped"><svg aria-hidden="true" role="img" viewBox="0 0 640 512" style="height:20px;width:25px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#f18e2c;overflow:visible;position:relative;"><path d="M576 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM352 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM96 416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32 14.3 32 32z"/></svg></td>
#> <td headers="name" class="gt_row gt_left gt_striped" style="font-weight: bold;">OverallTime</td>
#> <td headers="value" class="gt_row gt_center gt_striped"><?xml version='1.0' encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt' height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'><defs>  <style type='text/css'><![CDATA[    .svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {      fill: none;      stroke: #000000;      stroke-linecap: round;      stroke-linejoin: round;      stroke-miterlimit: 10.00;    }    .svglite text {      white-space: pre;    }    .svglite g.glyphgroup path {      fill: inherit;      stroke: none;    }  ]]></style></defs><rect width='100%' height='100%' style='stroke: none; fill: none;'/><defs>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='>    <rect x='0.00' y='0.00' width='141.73' height='34.02' />  </clipPath></defs><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'></g><defs>  <clipPath id='cpMS4wMHwxNDAuNzR8MS4wMHwyMy41Ng=='>    <rect x='1.00' y='1.00' width='139.74' height='22.56' />  </clipPath></defs><g clip-path='url(#cpMS4wMHwxNDAuNzR8MS4wMHwyMy41Ng==)'><rect x='7.35' y='23.56' width='10.59' height='0.00' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='17.93' y='1.00' width='10.59' height='22.56' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='28.52' y='1.89' width='10.59' height='21.67' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='39.11' y='19.40' width='10.59' height='4.16' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='49.69' y='16.73' width='10.59' height='6.83' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='60.28' y='18.51' width='10.59' height='5.05' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='70.87' y='18.81' width='10.59' height='4.75' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='81.45' y='20.88' width='10.59' height='2.67' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='92.04' y='22.37' width='10.59' height='1.19' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='102.63' y='22.37' width='10.59' height='1.19' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='113.21' y='20.88' width='10.59' height='2.67' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='123.80' y='22.67' width='10.59' height='0.89' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><circle cx='17.37' cy='23.26' r='0.46' style='stroke-width: 0.71; stroke: none;' /><circle cx='17.37' cy='23.26' r='0.46' style='stroke-width: 0.71; stroke: none;' /><line x1='33.10' y1='23.56' x2='33.10' y2='1.00' style='stroke-width: 1.07; stroke-linecap: butt;' /></g><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><polyline points='1.00,23.56 140.74,23.56 ' style='stroke-width: 0.75;' /><polyline points='18.49,26.39 18.49,23.56 ' style='stroke-width: 0.75;' /><polyline points='129.94,26.39 129.94,23.56 ' style='stroke-width: 0.75;' /><text x='18.49' y='33.36' text-anchor='middle' style='font-size: 6.00px; font-weight: 0; font-family: "Courier";' textLength='21.56px' lengthAdjust='spacingAndGlyphs'>3 auto</text><text x='129.94' y='33.36' text-anchor='middle' style='font-size: 6.00px; font-weight: 0; font-family: "Courier";' textLength='25.16px' lengthAdjust='spacingAndGlyphs'>58 auto</text></g></g></svg></td>
#> <td headers="n_missing" class="gt_row gt_right gt_striped">0.8%</td>
#> <td headers="Mean" class="gt_row gt_right gt_striped">16.5</td>
#> <td headers="Median" class="gt_row gt_right gt_striped">10.1</td>
#> <td headers="SD" class="gt_row gt_right gt_striped">13.5</td></tr>
#>     <tr><td headers="type" class="gt_row gt_left"><svg aria-hidden="true" role="img" viewBox="0 0 640 512" style="height:20px;width:25px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#f18e2c;overflow:visible;position:relative;"><path d="M576 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM352 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM96 416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32 14.3 32 32z"/></svg></td>
#> <td headers="name" class="gt_row gt_left" style="font-weight: bold;">MeasurementA</td>
#> <td headers="value" class="gt_row gt_center"><?xml version='1.0' encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt' height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'><defs>  <style type='text/css'><![CDATA[    .svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {      fill: none;      stroke: #000000;      stroke-linecap: round;      stroke-linejoin: round;      stroke-miterlimit: 10.00;    }    .svglite text {      white-space: pre;    }    .svglite g.glyphgroup path {      fill: inherit;      stroke: none;    }  ]]></style></defs><rect width='100%' height='100%' style='stroke: none; fill: none;'/><defs>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='>    <rect x='0.00' y='0.00' width='141.73' height='34.02' />  </clipPath></defs><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'></g><defs>  <clipPath id='cpMS4wMHwxNDAuNzR8MS4wMHwyMy41Ng=='>    <rect x='1.00' y='1.00' width='139.74' height='22.56' />  </clipPath></defs><g clip-path='url(#cpMS4wMHwxNDAuNzR8MS4wMHwyMy41Ng==)'><rect x='7.35' y='23.02' width='9.07' height='0.54' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='16.42' y='23.56' width='9.07' height='0.00' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='25.50' y='23.02' width='9.07' height='0.54' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='34.57' y='16.04' width='9.07' height='7.52' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='43.64' y='14.42' width='9.07' height='9.13' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='52.72' y='9.59' width='9.07' height='13.97' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='61.79' y='3.68' width='9.07' height='19.87' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='70.87' y='1.00' width='9.07' height='22.56' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='79.94' y='3.14' width='9.07' height='20.41' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='89.01' y='5.29' width='9.07' height='18.26' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='98.09' y='11.74' width='9.07' height='11.82' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='107.16' y='19.26' width='9.07' height='4.30' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='116.24' y='18.72' width='9.07' height='4.83' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect x='125.31' y='23.02' width='9.07' height='0.54' style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><circle cx='15.23' cy='23.02' r='0.46' style='stroke-width: 0.71; stroke: none;' /><circle cx='15.23' cy='23.02' r='0.46' style='stroke-width: 0.71; stroke: none;' /><line x1='77.68' y1='23.56' x2='77.68' y2='1.00' style='stroke-width: 1.07; stroke-linecap: butt;' /></g><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><polyline points='1.00,23.56 140.74,23.56 ' style='stroke-width: 0.75;' /><polyline points='16.36,26.39 16.36,23.56 ' style='stroke-width: 0.75;' /><polyline points='129.56,26.39 129.56,23.56 ' style='stroke-width: 0.75;' /><text x='16.36' y='33.36' text-anchor='middle' style='font-size: 6.00px; font-weight: 0; font-family: "Courier";' textLength='32.34px' lengthAdjust='spacingAndGlyphs'>-2.5 auto</text><text x='129.56' y='33.36' text-anchor='middle' style='font-size: 6.00px; font-weight: 0; font-family: "Courier";' textLength='28.75px' lengthAdjust='spacingAndGlyphs'>2.3 auto</text></g></g></svg></td>
#> <td headers="n_missing" class="gt_row gt_right">0.0%</td>
#> <td headers="Mean" class="gt_row gt_right">0.1</td>
#> <td headers="Median" class="gt_row gt_right">0.1</td>
#> <td headers="SD" class="gt_row gt_right">0.9</td></tr>
#>     <tr><td headers="type" class="gt_row gt_left gt_striped"><svg aria-hidden="true" role="img" viewBox="0 0 512 512" style="height:20px;width:20px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#4e79a7;overflow:visible;position:relative;"><path d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"/></svg></td>
#> <td headers="name" class="gt_row gt_left gt_striped" style="font-weight: bold;"><div style='max-width: 150px;'>
#>     <details style='font-weight: normal !important;'>
#>     <summary style='font-weight: bold !important;'>Grade</summary>
#> 3, 2 and 1
#> </details></div></td>
#> <td headers="value" class="gt_row gt_center gt_striped"><?xml version='1.0' encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt' height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'><defs>  <style type='text/css'><![CDATA[    .svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {      fill: none;      stroke: #000000;      stroke-linecap: round;      stroke-linejoin: round;      stroke-miterlimit: 10.00;    }    .svglite text {      white-space: pre;    }    .svglite g.glyphgroup path {      fill: inherit;      stroke: none;    }  ]]></style></defs><rect width='100%' height='100%' style='stroke: none; fill: none;'/><defs>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='>    <rect x='0.00' y='0.00' width='141.73' height='34.02' />  </clipPath></defs><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'></g><defs>  <clipPath id='cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ=='>    <rect x='1.00' y='2.99' width='139.74' height='20.62' />  </clipPath></defs><g clip-path='url(#cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ==)'><rect x='99.21' y='3.93' width='41.53' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #DDEAF7;' /><rect x='56.56' y='3.93' width='42.65' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #91B4DA;' /><rect x='1.00' y='3.93' width='55.56' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #3181BD;' /></g><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><text x='1.00' y='30.18' style='font-size: 8.00px; font-family: "Arial";' textLength='43.61px' lengthAdjust='spacingAndGlyphs'>3 categories</text></g></g></svg></td>
#> <td headers="n_missing" class="gt_row gt_right gt_striped">0.4%</td>
#> <td headers="Mean" class="gt_row gt_right gt_striped">—</td>
#> <td headers="Median" class="gt_row gt_right gt_striped">—</td>
#> <td headers="SD" class="gt_row gt_right gt_striped">—</td></tr>
#>   </tbody>
#>   
#>   
#> </table>
#> </div>
#> 
#>  SUMMARY OF CONTINUOUS VARIABLES
#> 
#> character(0)
#> 
#>  *Group: 1*
#>  Mean of Age is: 50.2 ± 14.5. (Median: 46.5 [Min: 26 - Max: 73])
#> 
#>  *Group: 1*
#>  Mean of OverallTime is: 17 ± 14.1. (Median: 10.1 [Min: 3 - Max: 58.2])
#> 
#>  *Group: 1*
#>  Mean of MeasurementA is: 0.1 ± 0.8. (Median: 0.2 [Min: -1.7 - Max:
#>  2.1])
#> 
#>  *Group: 2*
#>  Mean of Age is: 47.6 ± 13. (Median: 48 [Min: 26 - Max: 70])
#> 
#>  *Group: 2*
#>  Mean of OverallTime is: 15.8 ± 14.7. (Median: 9.4 [Min: 3.1 - Max:
#>  57.7])
#> 
#>  *Group: 2*
#>  Mean of MeasurementA is: 0 ± 0.9. (Median: 0.1 [Min: -2 - Max: 2.3])
#> 
#>  *Group: 3*
#>  Mean of Age is: 50 ± 13.7. (Median: 50 [Min: 25 - Max: 73])
#> 
#>  *Group: 3*
#>  Mean of OverallTime is: 16.6 ± 12.1. (Median: 11.4 [Min: 2.9 - Max:
#>  54.5])
#> 
#>  *Group: 3*
#>  Mean of MeasurementA is: 0.1 ± 0.9. (Median: 0.1 [Min: -2.5 - Max: 2])
#> 
#>  <table class="gt_table" data-quarto-disable-processing="false"
#>  data-quarto-bootstrap="false">
#> 
#>  <tr class="gt_heading">
#>  <td colspan="7" class="gt_heading gt_title gt_font_normal" style>.
#> 
#>  <tr class="gt_heading">
#>  <td colspan="7" class="gt_heading gt_subtitle gt_font_normal
#>  gt_bottom_border" style>250 rows x 4 cols
#> 
#>  <tr class="gt_col_headings">
#>  <th class="gt_col_heading gt_columns_bottom_border gt_left"
#>  rowspan="1" colspan="1" scope="col" id="type">
#>  <th class="gt_col_heading gt_columns_bottom_border gt_left"
#>  rowspan="1" colspan="1" scope="col" id="name">Column
#>  <th class="gt_col_heading gt_columns_bottom_border gt_center"
#>  rowspan="1" colspan="1" scope="col" id="value">Plot Overview
#>  <th class="gt_col_heading gt_columns_bottom_border gt_right"
#>  rowspan="1" colspan="1" scope="col" id="n_missing">Missing
#>  <th class="gt_col_heading gt_columns_bottom_border gt_right"
#>  rowspan="1" colspan="1" scope="col" id="Mean">Mean
#>  <th class="gt_col_heading gt_columns_bottom_border gt_right"
#>  rowspan="1" colspan="1" scope="col" id="Median">Median
#>  <th class="gt_col_heading gt_columns_bottom_border gt_right"
#>  rowspan="1" colspan="1" scope="col" id="SD">SD
#> 
#> 
#>  <tbody class="gt_table_body">
#>  <td headers="type" class="gt_row gt_left"><svg aria-hidden="true"
#>  role="img" viewBox="0 0 640 512"
#>  style="height:20px;width:25px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#f18e2c;overflow:visible;position:relative;"><path
#>  d="M576 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32
#>  32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32
#>  32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32
#>  32-32zM352 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7
#>  14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32V480c0
#>  17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM96
#>  416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32
#>  14.3 32 32z"/>
#>  <td headers="name" class="gt_row gt_left" style="font-weight:
#>  bold;">Age
#>  <td headers="value" class="gt_row gt_center"><?xml version='1.0'
#>  encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg'
#>  xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt'
#>  height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'> <style
#>  type='text/css'><![CDATA[ .svglite line, .svglite polyline, .svglite
#>  polygon, .svglite path, .svglite rect, .svglite circle { fill: none;
#>  stroke: #000000; stroke-linecap: round; stroke-linejoin: round;
#>  stroke-miterlimit: 10.00; } .svglite text { white-space: pre; }
#>  .svglite g.glyphgroup path { fill: inherit; stroke: none; } ]]><rect
#>  width='100%' height='100%' style='stroke: none; fill: none;'/>
#>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='> <rect x='0.00'
#>  y='0.00' width='141.73' height='34.02' /> <g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'> <clipPath
#>  id='cpMS4wMHwxNDAuNzR8MS4wMHwyMy41Ng=='> <rect x='1.00' y='1.00'
#>  width='139.74' height='22.56' /> <g
#>  clip-path='url(#cpMS4wMHwxNDAuNzR8MS4wMHwyMy41Ng==)'><rect x='7.35'
#>  y='20.48' width='15.88' height='3.08' style='stroke-width: 1.07;
#>  stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill:
#>  #F8BB87;' /><rect x='23.23' y='3.05' width='15.88' height='20.51'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='39.11' y='5.61'
#>  width='15.88' height='17.94' style='stroke-width: 1.07; stroke:
#>  #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;'
#>  /><rect x='54.99' y='1.00' width='15.88' height='22.56'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='70.87' y='2.02'
#>  width='15.88' height='21.53' style='stroke-width: 1.07; stroke:
#>  #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;'
#>  /><rect x='86.75' y='5.61' width='15.88' height='17.94'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='102.63' y='1.51'
#>  width='15.88' height='22.05' style='stroke-width: 1.07; stroke:
#>  #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;'
#>  /><rect x='118.50' y='21.50' width='15.88' height='2.05'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><circle cx='18.68'
#>  cy='23.04' r='0.46' style='stroke-width: 0.71; stroke: none;'
#>  /><circle cx='18.68' cy='23.04' r='0.46' style='stroke-width: 0.71;
#>  stroke: none;' /><line x1='69.63' y1='23.56' x2='69.63' y2='1.00'
#>  style='stroke-width: 1.07; stroke-linecap: butt;' /><g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><polyline
#>  points='1.00,23.56 140.74,23.56 ' style='stroke-width: 0.75;'
#>  /><polyline points='19.68,26.39 19.68,23.56 ' style='stroke-width:
#>  0.75;' /><polyline points='119.58,26.39 119.58,23.56 '
#>  style='stroke-width: 0.75;' /><text x='19.68' y='33.36'
#>  text-anchor='middle' style='font-size: 6.00px; font-weight: 0;
#>  font-family: "Courier";' textLength='25.16px'
#>  lengthAdjust='spacingAndGlyphs'>25 auto<text x='119.58' y='33.36'
#>  text-anchor='middle' style='font-size: 6.00px; font-weight: 0;
#>  font-family: "Courier";' textLength='25.16px'
#>  lengthAdjust='spacingAndGlyphs'>73 auto
#>  <td headers="n_missing" class="gt_row gt_right">0.4%
#>  <td headers="Mean" class="gt_row gt_right">49.4
#>  <td headers="Median" class="gt_row gt_right">49.0
#>  <td headers="SD" class="gt_row gt_right">13.8
#>  <td headers="type" class="gt_row gt_left gt_striped"><svg
#>  aria-hidden="true" role="img" viewBox="0 0 640 512"
#>  style="height:20px;width:25px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#f18e2c;overflow:visible;position:relative;"><path
#>  d="M576 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32
#>  32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32
#>  32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32
#>  32-32zM352 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7
#>  14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32V480c0
#>  17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM96
#>  416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32
#>  14.3 32 32z"/>
#>  <td headers="name" class="gt_row gt_left gt_striped"
#>  style="font-weight: bold;">OverallTime
#>  <td headers="value" class="gt_row gt_center gt_striped"><?xml
#>  version='1.0' encoding='UTF-8' ?><svg
#>  xmlns='http://www.w3.org/2000/svg'
#>  xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt'
#>  height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'> <style
#>  type='text/css'><![CDATA[ .svglite line, .svglite polyline, .svglite
#>  polygon, .svglite path, .svglite rect, .svglite circle { fill: none;
#>  stroke: #000000; stroke-linecap: round; stroke-linejoin: round;
#>  stroke-miterlimit: 10.00; } .svglite text { white-space: pre; }
#>  .svglite g.glyphgroup path { fill: inherit; stroke: none; } ]]><rect
#>  width='100%' height='100%' style='stroke: none; fill: none;'/>
#>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='> <rect x='0.00'
#>  y='0.00' width='141.73' height='34.02' /> <g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'> <clipPath
#>  id='cpMS4wMHwxNDAuNzR8MS4wMHwyMy41Ng=='> <rect x='1.00' y='1.00'
#>  width='139.74' height='22.56' /> <g
#>  clip-path='url(#cpMS4wMHwxNDAuNzR8MS4wMHwyMy41Ng==)'><rect x='7.35'
#>  y='23.56' width='10.59' height='0.00' style='stroke-width: 1.07;
#>  stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill:
#>  #F8BB87;' /><rect x='17.93' y='1.00' width='10.59' height='22.56'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='28.52' y='1.89'
#>  width='10.59' height='21.67' style='stroke-width: 1.07; stroke:
#>  #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;'
#>  /><rect x='39.11' y='19.40' width='10.59' height='4.16'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='49.69' y='16.73'
#>  width='10.59' height='6.83' style='stroke-width: 1.07; stroke:
#>  #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;'
#>  /><rect x='60.28' y='18.51' width='10.59' height='5.05'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='70.87' y='18.81'
#>  width='10.59' height='4.75' style='stroke-width: 1.07; stroke:
#>  #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;'
#>  /><rect x='81.45' y='20.88' width='10.59' height='2.67'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='92.04' y='22.37'
#>  width='10.59' height='1.19' style='stroke-width: 1.07; stroke:
#>  #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;'
#>  /><rect x='102.63' y='22.37' width='10.59' height='1.19'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='113.21' y='20.88'
#>  width='10.59' height='2.67' style='stroke-width: 1.07; stroke:
#>  #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;'
#>  /><rect x='123.80' y='22.67' width='10.59' height='0.89'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><circle cx='17.37'
#>  cy='23.26' r='0.46' style='stroke-width: 0.71; stroke: none;'
#>  /><circle cx='17.37' cy='23.26' r='0.46' style='stroke-width: 0.71;
#>  stroke: none;' /><line x1='33.10' y1='23.56' x2='33.10' y2='1.00'
#>  style='stroke-width: 1.07; stroke-linecap: butt;' /><g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><polyline
#>  points='1.00,23.56 140.74,23.56 ' style='stroke-width: 0.75;'
#>  /><polyline points='18.49,26.39 18.49,23.56 ' style='stroke-width:
#>  0.75;' /><polyline points='129.94,26.39 129.94,23.56 '
#>  style='stroke-width: 0.75;' /><text x='18.49' y='33.36'
#>  text-anchor='middle' style='font-size: 6.00px; font-weight: 0;
#>  font-family: "Courier";' textLength='21.56px'
#>  lengthAdjust='spacingAndGlyphs'>3 auto<text x='129.94' y='33.36'
#>  text-anchor='middle' style='font-size: 6.00px; font-weight: 0;
#>  font-family: "Courier";' textLength='25.16px'
#>  lengthAdjust='spacingAndGlyphs'>58 auto
#>  <td headers="n_missing" class="gt_row gt_right gt_striped">0.8%
#>  <td headers="Mean" class="gt_row gt_right gt_striped">16.5
#>  <td headers="Median" class="gt_row gt_right gt_striped">10.1
#>  <td headers="SD" class="gt_row gt_right gt_striped">13.5
#>  <td headers="type" class="gt_row gt_left"><svg aria-hidden="true"
#>  role="img" viewBox="0 0 640 512"
#>  style="height:20px;width:25px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#f18e2c;overflow:visible;position:relative;"><path
#>  d="M576 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32
#>  32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32
#>  32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32
#>  32-32zM352 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7
#>  14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32V480c0
#>  17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM96
#>  416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32
#>  14.3 32 32z"/>
#>  <td headers="name" class="gt_row gt_left" style="font-weight:
#>  bold;">MeasurementA
#>  <td headers="value" class="gt_row gt_center"><?xml version='1.0'
#>  encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg'
#>  xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt'
#>  height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'> <style
#>  type='text/css'><![CDATA[ .svglite line, .svglite polyline, .svglite
#>  polygon, .svglite path, .svglite rect, .svglite circle { fill: none;
#>  stroke: #000000; stroke-linecap: round; stroke-linejoin: round;
#>  stroke-miterlimit: 10.00; } .svglite text { white-space: pre; }
#>  .svglite g.glyphgroup path { fill: inherit; stroke: none; } ]]><rect
#>  width='100%' height='100%' style='stroke: none; fill: none;'/>
#>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='> <rect x='0.00'
#>  y='0.00' width='141.73' height='34.02' /> <g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'> <clipPath
#>  id='cpMS4wMHwxNDAuNzR8MS4wMHwyMy41Ng=='> <rect x='1.00' y='1.00'
#>  width='139.74' height='22.56' /> <g
#>  clip-path='url(#cpMS4wMHwxNDAuNzR8MS4wMHwyMy41Ng==)'><rect x='7.35'
#>  y='23.02' width='9.07' height='0.54' style='stroke-width: 1.07;
#>  stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill:
#>  #F8BB87;' /><rect x='16.42' y='23.56' width='9.07' height='0.00'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='25.50' y='23.02'
#>  width='9.07' height='0.54' style='stroke-width: 1.07; stroke: #FFFFFF;
#>  stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect
#>  x='34.57' y='16.04' width='9.07' height='7.52' style='stroke-width:
#>  1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter;
#>  fill: #F8BB87;' /><rect x='43.64' y='14.42' width='9.07' height='9.13'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='52.72' y='9.59'
#>  width='9.07' height='13.97' style='stroke-width: 1.07; stroke:
#>  #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;'
#>  /><rect x='61.79' y='3.68' width='9.07' height='19.87'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='70.87' y='1.00'
#>  width='9.07' height='22.56' style='stroke-width: 1.07; stroke:
#>  #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;'
#>  /><rect x='79.94' y='3.14' width='9.07' height='20.41'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='89.01' y='5.29'
#>  width='9.07' height='18.26' style='stroke-width: 1.07; stroke:
#>  #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;'
#>  /><rect x='98.09' y='11.74' width='9.07' height='11.82'
#>  style='stroke-width: 1.07; stroke: #FFFFFF; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #F8BB87;' /><rect x='107.16' y='19.26'
#>  width='9.07' height='4.30' style='stroke-width: 1.07; stroke: #FFFFFF;
#>  stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;' /><rect
#>  x='116.24' y='18.72' width='9.07' height='4.83' style='stroke-width:
#>  1.07; stroke: #FFFFFF; stroke-linecap: butt; stroke-linejoin: miter;
#>  fill: #F8BB87;' /><rect x='125.31' y='23.02' width='9.07'
#>  height='0.54' style='stroke-width: 1.07; stroke: #FFFFFF;
#>  stroke-linecap: butt; stroke-linejoin: miter; fill: #F8BB87;'
#>  /><circle cx='15.23' cy='23.02' r='0.46' style='stroke-width: 0.71;
#>  stroke: none;' /><circle cx='15.23' cy='23.02' r='0.46'
#>  style='stroke-width: 0.71; stroke: none;' /><line x1='77.68'
#>  y1='23.56' x2='77.68' y2='1.00' style='stroke-width: 1.07;
#>  stroke-linecap: butt;' /><g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><polyline
#>  points='1.00,23.56 140.74,23.56 ' style='stroke-width: 0.75;'
#>  /><polyline points='16.36,26.39 16.36,23.56 ' style='stroke-width:
#>  0.75;' /><polyline points='129.56,26.39 129.56,23.56 '
#>  style='stroke-width: 0.75;' /><text x='16.36' y='33.36'
#>  text-anchor='middle' style='font-size: 6.00px; font-weight: 0;
#>  font-family: "Courier";' textLength='32.34px'
#>  lengthAdjust='spacingAndGlyphs'>-2.5 auto<text x='129.56' y='33.36'
#>  text-anchor='middle' style='font-size: 6.00px; font-weight: 0;
#>  font-family: "Courier";' textLength='28.75px'
#>  lengthAdjust='spacingAndGlyphs'>2.3 auto
#>  <td headers="n_missing" class="gt_row gt_right">0.0%
#>  <td headers="Mean" class="gt_row gt_right">0.1
#>  <td headers="Median" class="gt_row gt_right">0.1
#>  <td headers="SD" class="gt_row gt_right">0.9
#>  <td headers="type" class="gt_row gt_left gt_striped"><svg
#>  aria-hidden="true" role="img" viewBox="0 0 512 512"
#>  style="height:20px;width:20px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#4e79a7;overflow:visible;position:relative;"><path
#>  d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0
#>  24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32
#>  32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0
#>  160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3
#>  32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32
#>  32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7
#>  24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3
#>  0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24
#>  24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"/>
#>  <td headers="name" class="gt_row gt_left gt_striped"
#>  style="font-weight: bold;"><div style='max-width: 150px;'>
#>  <details style='font-weight: normal !important;'>
#>  <summary style='font-weight: bold !important;'>Grade
#>  3, 2 and 1
#> 
#>  <td headers="value" class="gt_row gt_center gt_striped"><?xml
#>  version='1.0' encoding='UTF-8' ?><svg
#>  xmlns='http://www.w3.org/2000/svg'
#>  xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt'
#>  height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'> <style
#>  type='text/css'><![CDATA[ .svglite line, .svglite polyline, .svglite
#>  polygon, .svglite path, .svglite rect, .svglite circle { fill: none;
#>  stroke: #000000; stroke-linecap: round; stroke-linejoin: round;
#>  stroke-miterlimit: 10.00; } .svglite text { white-space: pre; }
#>  .svglite g.glyphgroup path { fill: inherit; stroke: none; } ]]><rect
#>  width='100%' height='100%' style='stroke: none; fill: none;'/>
#>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='> <rect x='0.00'
#>  y='0.00' width='141.73' height='34.02' /> <g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'> <clipPath
#>  id='cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ=='> <rect x='1.00' y='2.99'
#>  width='139.74' height='20.62' /> <g
#>  clip-path='url(#cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ==)'><rect x='99.21'
#>  y='3.93' width='41.53' height='18.75' style='stroke-width: 1.07;
#>  stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill:
#>  #DDEAF7;' /><rect x='56.56' y='3.93' width='42.65' height='18.75'
#>  style='stroke-width: 1.07; stroke: none; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #91B4DA;' /><rect x='1.00' y='3.93'
#>  width='55.56' height='18.75' style='stroke-width: 1.07; stroke: none;
#>  stroke-linecap: butt; stroke-linejoin: miter; fill: #3181BD;' /><g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><text x='1.00'
#>  y='30.18' style='font-size: 8.00px; font-family: "Arial";'
#>  textLength='43.61px' lengthAdjust='spacingAndGlyphs'>3 categories
#>  <td headers="n_missing" class="gt_row gt_right gt_striped">0.4%
#>  <td headers="Mean" class="gt_row gt_right gt_striped">—
#>  <td headers="Median" class="gt_row gt_right gt_striped">—
#>  <td headers="SD" class="gt_row gt_right gt_striped">—

Categorical Variables Summary

Analyze categorical variables with counts and percentages:

reportcat(
  data = histopathology,
  vars = c("Sex", "Grade", "TStage", "LVI", "PNI")
)
#> <div id="kkeulbfdpb" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
#>   <style>@import url("https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
#> #kkeulbfdpb table {
#>   font-family: Lato, system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
#>   -webkit-font-smoothing: antialiased;
#>   -moz-osx-font-smoothing: grayscale;
#> }
#> 
#> #kkeulbfdpb thead, #kkeulbfdpb tbody, #kkeulbfdpb tfoot, #kkeulbfdpb tr, #kkeulbfdpb td, #kkeulbfdpb th {
#>   border-style: none;
#> }
#> 
#> #kkeulbfdpb p {
#>   margin: 0;
#>   padding: 0;
#> }
#> 
#> #kkeulbfdpb .gt_table {
#>   display: table;
#>   border-collapse: collapse;
#>   line-height: normal;
#>   margin-left: auto;
#>   margin-right: auto;
#>   color: #333333;
#>   font-size: 16px;
#>   font-weight: normal;
#>   font-style: normal;
#>   background-color: #FFFFFF;
#>   width: auto;
#>   border-top-style: solid;
#>   border-top-width: 3px;
#>   border-top-color: #FFFFFF;
#>   border-right-style: none;
#>   border-right-width: 2px;
#>   border-right-color: #D3D3D3;
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #A8A8A8;
#>   border-left-style: none;
#>   border-left-width: 2px;
#>   border-left-color: #D3D3D3;
#> }
#> 
#> #kkeulbfdpb .gt_caption {
#>   padding-top: 4px;
#>   padding-bottom: 4px;
#> }
#> 
#> #kkeulbfdpb .gt_title {
#>   color: #333333;
#>   font-size: 24px;
#>   font-weight: initial;
#>   padding-top: 4px;
#>   padding-bottom: 4px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   border-bottom-color: #FFFFFF;
#>   border-bottom-width: 0;
#> }
#> 
#> #kkeulbfdpb .gt_subtitle {
#>   color: #333333;
#>   font-size: 85%;
#>   font-weight: initial;
#>   padding-top: 3px;
#>   padding-bottom: 5px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   border-top-color: #FFFFFF;
#>   border-top-width: 0;
#> }
#> 
#> #kkeulbfdpb .gt_heading {
#>   background-color: #FFFFFF;
#>   text-align: left;
#>   border-bottom-color: #FFFFFF;
#>   border-left-style: none;
#>   border-left-width: 1px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 1px;
#>   border-right-color: #D3D3D3;
#> }
#> 
#> #kkeulbfdpb .gt_bottom_border {
#>   border-bottom-style: solid;
#>   border-bottom-width: 0px;
#>   border-bottom-color: #D3D3D3;
#> }
#> 
#> #kkeulbfdpb .gt_col_headings {
#>   border-top-style: solid;
#>   border-top-width: 0px;
#>   border-top-color: #D3D3D3;
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#>   border-left-style: none;
#>   border-left-width: 1px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 1px;
#>   border-right-color: #D3D3D3;
#> }
#> 
#> #kkeulbfdpb .gt_col_heading {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   font-size: 80%;
#>   font-weight: bolder;
#>   text-transform: uppercase;
#>   border-left-style: none;
#>   border-left-width: 1px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 1px;
#>   border-right-color: #D3D3D3;
#>   vertical-align: bottom;
#>   padding-top: 5px;
#>   padding-bottom: 6px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   overflow-x: hidden;
#> }
#> 
#> #kkeulbfdpb .gt_column_spanner_outer {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   font-size: 80%;
#>   font-weight: bolder;
#>   text-transform: uppercase;
#>   padding-top: 0;
#>   padding-bottom: 0;
#>   padding-left: 4px;
#>   padding-right: 4px;
#> }
#> 
#> #kkeulbfdpb .gt_column_spanner_outer:first-child {
#>   padding-left: 0;
#> }
#> 
#> #kkeulbfdpb .gt_column_spanner_outer:last-child {
#>   padding-right: 0;
#> }
#> 
#> #kkeulbfdpb .gt_column_spanner {
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#>   vertical-align: bottom;
#>   padding-top: 5px;
#>   padding-bottom: 5px;
#>   overflow-x: hidden;
#>   display: inline-block;
#>   width: 100%;
#> }
#> 
#> #kkeulbfdpb .gt_spanner_row {
#>   border-bottom-style: hidden;
#> }
#> 
#> #kkeulbfdpb .gt_group_heading {
#>   padding-top: 8px;
#>   padding-bottom: 8px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   font-size: 80%;
#>   font-weight: bolder;
#>   text-transform: uppercase;
#>   border-top-style: solid;
#>   border-top-width: 2px;
#>   border-top-color: #D3D3D3;
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#>   border-left-style: none;
#>   border-left-width: 1px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 1px;
#>   border-right-color: #D3D3D3;
#>   vertical-align: middle;
#>   text-align: left;
#> }
#> 
#> #kkeulbfdpb .gt_empty_group_heading {
#>   padding: 0.5px;
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   font-size: 80%;
#>   font-weight: bolder;
#>   border-top-style: solid;
#>   border-top-width: 2px;
#>   border-top-color: #D3D3D3;
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#>   vertical-align: middle;
#> }
#> 
#> #kkeulbfdpb .gt_from_md > :first-child {
#>   margin-top: 0;
#> }
#> 
#> #kkeulbfdpb .gt_from_md > :last-child {
#>   margin-bottom: 0;
#> }
#> 
#> #kkeulbfdpb .gt_row {
#>   padding-top: 7px;
#>   padding-bottom: 7px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   margin: 10px;
#>   border-top-style: solid;
#>   border-top-width: 1px;
#>   border-top-color: #F6F7F7;
#>   border-left-style: none;
#>   border-left-width: 1px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 1px;
#>   border-right-color: #D3D3D3;
#>   vertical-align: middle;
#>   overflow-x: hidden;
#> }
#> 
#> #kkeulbfdpb .gt_stub {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   font-size: 80%;
#>   font-weight: bolder;
#>   text-transform: uppercase;
#>   border-right-style: solid;
#>   border-right-width: 2px;
#>   border-right-color: #D3D3D3;
#>   padding-left: 5px;
#>   padding-right: 5px;
#> }
#> 
#> #kkeulbfdpb .gt_stub_row_group {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   font-size: 100%;
#>   font-weight: initial;
#>   text-transform: inherit;
#>   border-right-style: solid;
#>   border-right-width: 2px;
#>   border-right-color: #D3D3D3;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   vertical-align: top;
#> }
#> 
#> #kkeulbfdpb .gt_row_group_first td {
#>   border-top-width: 2px;
#> }
#> 
#> #kkeulbfdpb .gt_row_group_first th {
#>   border-top-width: 2px;
#> }
#> 
#> #kkeulbfdpb .gt_summary_row {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   text-transform: inherit;
#>   padding-top: 8px;
#>   padding-bottom: 8px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#> }
#> 
#> #kkeulbfdpb .gt_first_summary_row {
#>   border-top-style: solid;
#>   border-top-color: #D3D3D3;
#> }
#> 
#> #kkeulbfdpb .gt_first_summary_row.thick {
#>   border-top-width: 2px;
#> }
#> 
#> #kkeulbfdpb .gt_last_summary_row {
#>   padding-top: 8px;
#>   padding-bottom: 8px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#> }
#> 
#> #kkeulbfdpb .gt_grand_summary_row {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   text-transform: inherit;
#>   padding-top: 8px;
#>   padding-bottom: 8px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#> }
#> 
#> #kkeulbfdpb .gt_first_grand_summary_row {
#>   padding-top: 8px;
#>   padding-bottom: 8px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   border-top-style: double;
#>   border-top-width: 6px;
#>   border-top-color: #D3D3D3;
#> }
#> 
#> #kkeulbfdpb .gt_last_grand_summary_row_top {
#>   padding-top: 8px;
#>   padding-bottom: 8px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#>   border-bottom-style: double;
#>   border-bottom-width: 6px;
#>   border-bottom-color: #D3D3D3;
#> }
#> 
#> #kkeulbfdpb .gt_striped {
#>   background-color: #FAFAFA;
#> }
#> 
#> #kkeulbfdpb .gt_table_body {
#>   border-top-style: solid;
#>   border-top-width: 2px;
#>   border-top-color: #D3D3D3;
#>   border-bottom-style: solid;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#> }
#> 
#> #kkeulbfdpb .gt_footnotes {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   border-bottom-style: none;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#>   border-left-style: none;
#>   border-left-width: 2px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 2px;
#>   border-right-color: #D3D3D3;
#> }
#> 
#> #kkeulbfdpb .gt_footnote {
#>   margin: 0px;
#>   font-size: 90%;
#>   padding-top: 4px;
#>   padding-bottom: 4px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#> }
#> 
#> #kkeulbfdpb .gt_sourcenotes {
#>   color: #333333;
#>   background-color: #FFFFFF;
#>   border-bottom-style: none;
#>   border-bottom-width: 2px;
#>   border-bottom-color: #D3D3D3;
#>   border-left-style: none;
#>   border-left-width: 2px;
#>   border-left-color: #D3D3D3;
#>   border-right-style: none;
#>   border-right-width: 2px;
#>   border-right-color: #D3D3D3;
#> }
#> 
#> #kkeulbfdpb .gt_sourcenote {
#>   font-size: 12px;
#>   padding-top: 4px;
#>   padding-bottom: 4px;
#>   padding-left: 5px;
#>   padding-right: 5px;
#> }
#> 
#> #kkeulbfdpb .gt_left {
#>   text-align: left;
#> }
#> 
#> #kkeulbfdpb .gt_center {
#>   text-align: center;
#> }
#> 
#> #kkeulbfdpb .gt_right {
#>   text-align: right;
#>   font-variant-numeric: tabular-nums;
#> }
#> 
#> #kkeulbfdpb .gt_font_normal {
#>   font-weight: normal;
#> }
#> 
#> #kkeulbfdpb .gt_font_bold {
#>   font-weight: bold;
#> }
#> 
#> #kkeulbfdpb .gt_font_italic {
#>   font-style: italic;
#> }
#> 
#> #kkeulbfdpb .gt_super {
#>   font-size: 65%;
#> }
#> 
#> #kkeulbfdpb .gt_footnote_marks {
#>   font-size: 75%;
#>   vertical-align: 0.4em;
#>   position: initial;
#> }
#> 
#> #kkeulbfdpb .gt_asterisk {
#>   font-size: 100%;
#>   vertical-align: 0;
#> }
#> 
#> #kkeulbfdpb .gt_indent_1 {
#>   text-indent: 5px;
#> }
#> 
#> #kkeulbfdpb .gt_indent_2 {
#>   text-indent: 10px;
#> }
#> 
#> #kkeulbfdpb .gt_indent_3 {
#>   text-indent: 15px;
#> }
#> 
#> #kkeulbfdpb .gt_indent_4 {
#>   text-indent: 20px;
#> }
#> 
#> #kkeulbfdpb .gt_indent_5 {
#>   text-indent: 25px;
#> }
#> 
#> #kkeulbfdpb .katex-display {
#>   display: inline-flex !important;
#>   margin-bottom: 0.75em !important;
#> }
#> 
#> #kkeulbfdpb div.Reactable > div.rt-table > div.rt-thead > div.rt-tr.rt-tr-group-header > div.rt-th-group:after {
#>   height: 0px !important;
#> }
#> </style>
#>   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
#>   <thead>
#>     <tr class="gt_heading">
#>       <td colspan="4" class="gt_heading gt_title gt_font_normal" style>.</td>
#>     </tr>
#>     <tr class="gt_heading">
#>       <td colspan="4" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>250 rows x 5 cols</td>
#>     </tr>
#>     <tr class="gt_col_headings">
#>       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="type"></th>
#>       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="name">Column</th>
#>       <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" scope="col" id="value">Plot Overview</th>
#>       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="n_missing">Missing</th>
#>     </tr>
#>   </thead>
#>   <tbody class="gt_table_body">
#>     <tr><td headers="type" class="gt_row gt_left"><svg aria-hidden="true" role="img" viewBox="0 0 512 512" style="height:20px;width:20px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#4e79a7;overflow:visible;position:relative;"><path d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"/></svg></td>
#> <td headers="name" class="gt_row gt_left" style="font-weight: bold;"><div style='max-width: 150px;'>
#>     <details style='font-weight: normal !important;'>
#>     <summary style='font-weight: bold !important;'>Sex</summary>
#> Male and Female
#> </details></div></td>
#> <td headers="value" class="gt_row gt_center"><?xml version='1.0' encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt' height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'><defs>  <style type='text/css'><![CDATA[    .svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {      fill: none;      stroke: #000000;      stroke-linecap: round;      stroke-linejoin: round;      stroke-miterlimit: 10.00;    }    .svglite text {      white-space: pre;    }    .svglite g.glyphgroup path {      fill: inherit;      stroke: none;    }  ]]></style></defs><rect width='100%' height='100%' style='stroke: none; fill: none;'/><defs>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='>    <rect x='0.00' y='0.00' width='141.73' height='34.02' />  </clipPath></defs><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'></g><defs>  <clipPath id='cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ=='>    <rect x='1.00' y='2.99' width='139.74' height='20.62' />  </clipPath></defs><g clip-path='url(#cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ==)'><rect x='72.83' y='3.93' width='67.91' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #DDEAF7;' /><rect x='1.00' y='3.93' width='71.83' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #3181BD;' /></g><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><text x='1.00' y='30.18' style='font-size: 8.00px; font-family: "Arial";' textLength='43.61px' lengthAdjust='spacingAndGlyphs'>2 categories</text></g></g></svg></td>
#> <td headers="n_missing" class="gt_row gt_right">0.4%</td></tr>
#>     <tr><td headers="type" class="gt_row gt_left gt_striped"><svg aria-hidden="true" role="img" viewBox="0 0 512 512" style="height:20px;width:20px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#4e79a7;overflow:visible;position:relative;"><path d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"/></svg></td>
#> <td headers="name" class="gt_row gt_left gt_striped" style="font-weight: bold;"><div style='max-width: 150px;'>
#>     <details style='font-weight: normal !important;'>
#>     <summary style='font-weight: bold !important;'>Grade</summary>
#> 3, 2 and 1
#> </details></div></td>
#> <td headers="value" class="gt_row gt_center gt_striped"><?xml version='1.0' encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt' height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'><defs>  <style type='text/css'><![CDATA[    .svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {      fill: none;      stroke: #000000;      stroke-linecap: round;      stroke-linejoin: round;      stroke-miterlimit: 10.00;    }    .svglite text {      white-space: pre;    }    .svglite g.glyphgroup path {      fill: inherit;      stroke: none;    }  ]]></style></defs><rect width='100%' height='100%' style='stroke: none; fill: none;'/><defs>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='>    <rect x='0.00' y='0.00' width='141.73' height='34.02' />  </clipPath></defs><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'></g><defs>  <clipPath id='cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ=='>    <rect x='1.00' y='2.99' width='139.74' height='20.62' />  </clipPath></defs><g clip-path='url(#cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ==)'><rect x='99.21' y='3.93' width='41.53' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #DDEAF7;' /><rect x='56.56' y='3.93' width='42.65' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #91B4DA;' /><rect x='1.00' y='3.93' width='55.56' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #3181BD;' /></g><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><text x='1.00' y='30.18' style='font-size: 8.00px; font-family: "Arial";' textLength='43.61px' lengthAdjust='spacingAndGlyphs'>3 categories</text></g></g></svg></td>
#> <td headers="n_missing" class="gt_row gt_right gt_striped">0.4%</td></tr>
#>     <tr><td headers="type" class="gt_row gt_left"><svg aria-hidden="true" role="img" viewBox="0 0 512 512" style="height:20px;width:20px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#4e79a7;overflow:visible;position:relative;"><path d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"/></svg></td>
#> <td headers="name" class="gt_row gt_left" style="font-weight: bold;"><div style='max-width: 150px;'>
#>     <details style='font-weight: normal !important;'>
#>     <summary style='font-weight: bold !important;'>TStage</summary>
#> 4, 3, 2 and 1
#> </details></div></td>
#> <td headers="value" class="gt_row gt_center"><?xml version='1.0' encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt' height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'><defs>  <style type='text/css'><![CDATA[    .svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {      fill: none;      stroke: #000000;      stroke-linecap: round;      stroke-linejoin: round;      stroke-miterlimit: 10.00;    }    .svglite text {      white-space: pre;    }    .svglite g.glyphgroup path {      fill: inherit;      stroke: none;    }  ]]></style></defs><rect width='100%' height='100%' style='stroke: none; fill: none;'/><defs>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='>    <rect x='0.00' y='0.00' width='141.73' height='34.02' />  </clipPath></defs><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'></g><defs>  <clipPath id='cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ=='>    <rect x='1.00' y='2.99' width='139.74' height='20.62' />  </clipPath></defs><g clip-path='url(#cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ==)'><rect x='127.27' y='3.93' width='13.47' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #DDEAF7;' /><rect x='98.65' y='3.93' width='28.62' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #ABC6E4;' /><rect x='63.29' y='3.93' width='35.36' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #75A3D0;' /><rect x='1.00' y='3.93' width='62.29' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #3181BD;' /></g><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><text x='1.00' y='30.18' style='font-size: 8.00px; font-family: "Arial";' textLength='43.61px' lengthAdjust='spacingAndGlyphs'>4 categories</text></g></g></svg></td>
#> <td headers="n_missing" class="gt_row gt_right">0.4%</td></tr>
#>     <tr><td headers="type" class="gt_row gt_left gt_striped"><svg aria-hidden="true" role="img" viewBox="0 0 512 512" style="height:20px;width:20px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#4e79a7;overflow:visible;position:relative;"><path d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"/></svg></td>
#> <td headers="name" class="gt_row gt_left gt_striped" style="font-weight: bold;"><div style='max-width: 150px;'>
#>     <details style='font-weight: normal !important;'>
#>     <summary style='font-weight: bold !important;'>LVI</summary>
#> Absent and Present
#> </details></div></td>
#> <td headers="value" class="gt_row gt_center gt_striped"><?xml version='1.0' encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt' height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'><defs>  <style type='text/css'><![CDATA[    .svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {      fill: none;      stroke: #000000;      stroke-linecap: round;      stroke-linejoin: round;      stroke-miterlimit: 10.00;    }    .svglite text {      white-space: pre;    }    .svglite g.glyphgroup path {      fill: inherit;      stroke: none;    }  ]]></style></defs><rect width='100%' height='100%' style='stroke: none; fill: none;'/><defs>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='>    <rect x='0.00' y='0.00' width='141.73' height='34.02' />  </clipPath></defs><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'></g><defs>  <clipPath id='cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ=='>    <rect x='1.00' y='2.99' width='139.74' height='20.62' />  </clipPath></defs><g clip-path='url(#cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ==)'><rect x='81.25' y='3.93' width='59.49' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #DDEAF7;' /><rect x='1.00' y='3.93' width='80.25' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #3181BD;' /></g><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><text x='1.00' y='30.18' style='font-size: 8.00px; font-family: "Arial";' textLength='43.61px' lengthAdjust='spacingAndGlyphs'>2 categories</text></g></g></svg></td>
#> <td headers="n_missing" class="gt_row gt_right gt_striped">0.4%</td></tr>
#>     <tr><td headers="type" class="gt_row gt_left"><svg aria-hidden="true" role="img" viewBox="0 0 512 512" style="height:20px;width:20px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#4e79a7;overflow:visible;position:relative;"><path d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"/></svg></td>
#> <td headers="name" class="gt_row gt_left" style="font-weight: bold;"><div style='max-width: 150px;'>
#>     <details style='font-weight: normal !important;'>
#>     <summary style='font-weight: bold !important;'>PNI</summary>
#> Absent and Present
#> </details></div></td>
#> <td headers="value" class="gt_row gt_center"><?xml version='1.0' encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt' height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'><defs>  <style type='text/css'><![CDATA[    .svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {      fill: none;      stroke: #000000;      stroke-linecap: round;      stroke-linejoin: round;      stroke-miterlimit: 10.00;    }    .svglite text {      white-space: pre;    }    .svglite g.glyphgroup path {      fill: inherit;      stroke: none;    }  ]]></style></defs><rect width='100%' height='100%' style='stroke: none; fill: none;'/><defs>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='>    <rect x='0.00' y='0.00' width='141.73' height='34.02' />  </clipPath></defs><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'></g><defs>  <clipPath id='cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ=='>    <rect x='1.00' y='2.99' width='139.74' height='20.62' />  </clipPath></defs><g clip-path='url(#cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ==)'><rect x='94.16' y='3.93' width='46.58' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #DDEAF7;' /><rect x='1.00' y='3.93' width='93.16' height='18.75' style='stroke-width: 1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill: #3181BD;' /></g><g clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><text x='1.00' y='30.18' style='font-size: 8.00px; font-family: "Arial";' textLength='43.61px' lengthAdjust='spacingAndGlyphs'>2 categories</text></g></g></svg></td>
#> <td headers="n_missing" class="gt_row gt_right">0.4%</td></tr>
#>   </tbody>
#>   
#>   
#> </table>
#> </div>
#> 
#>  SUMMARY OF CATEGORICAL VARIABLES
#> 
#> character(0)
#> 
#>  Sex has 250 observations and 2 levels.
#>  Female: n = 121, 48.6% of valid cases.
#>  Male: n = 128, 51.4% of valid cases.
#>  Missing values: 1.
#> 
#>  Grade has 250 observations and 3 levels.
#>  1: n = 74, 29.72% of valid cases.
#>  2: n = 76, 30.52% of valid cases.
#>  3: n = 99, 39.76% of valid cases.
#>  Missing values: 1.
#> 
#>  TStage has 250 observations and 4 levels.
#>  1: n = 24, 9.6% of valid cases.
#>  2: n = 51, 20.5% of valid cases.
#>  3: n = 63, 25.3% of valid cases.
#>  4: n = 111, 44.6% of valid cases.
#>  Missing values: 1.
#> 
#>  LVI has 250 observations and 2 levels.
#>  Absent: n = 143, 57% of valid cases.
#>  Present: n = 106, 43% of valid cases.
#>  Missing values: 1.
#> 
#>  PNI has 250 observations and 2 levels.
#>  Absent: n = 166, 67% of valid cases.
#>  Present: n = 83, 33% of valid cases.
#>  Missing values: 1.
#> 
#>  <table class="gt_table" data-quarto-disable-processing="false"
#>  data-quarto-bootstrap="false">
#> 
#>  <tr class="gt_heading">
#>  <td colspan="4" class="gt_heading gt_title gt_font_normal" style>.
#> 
#>  <tr class="gt_heading">
#>  <td colspan="4" class="gt_heading gt_subtitle gt_font_normal
#>  gt_bottom_border" style>250 rows x 5 cols
#> 
#>  <tr class="gt_col_headings">
#>  <th class="gt_col_heading gt_columns_bottom_border gt_left"
#>  rowspan="1" colspan="1" scope="col" id="type">
#>  <th class="gt_col_heading gt_columns_bottom_border gt_left"
#>  rowspan="1" colspan="1" scope="col" id="name">Column
#>  <th class="gt_col_heading gt_columns_bottom_border gt_center"
#>  rowspan="1" colspan="1" scope="col" id="value">Plot Overview
#>  <th class="gt_col_heading gt_columns_bottom_border gt_right"
#>  rowspan="1" colspan="1" scope="col" id="n_missing">Missing
#> 
#> 
#>  <tbody class="gt_table_body">
#>  <td headers="type" class="gt_row gt_left"><svg aria-hidden="true"
#>  role="img" viewBox="0 0 512 512"
#>  style="height:20px;width:20px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#4e79a7;overflow:visible;position:relative;"><path
#>  d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0
#>  24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32
#>  32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0
#>  160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3
#>  32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32
#>  32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7
#>  24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3
#>  0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24
#>  24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"/>
#>  <td headers="name" class="gt_row gt_left" style="font-weight:
#>  bold;"><div style='max-width: 150px;'>
#>  <details style='font-weight: normal !important;'>
#>  <summary style='font-weight: bold !important;'>Sex
#>  Male and Female
#> 
#>  <td headers="value" class="gt_row gt_center"><?xml version='1.0'
#>  encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg'
#>  xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt'
#>  height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'> <style
#>  type='text/css'><![CDATA[ .svglite line, .svglite polyline, .svglite
#>  polygon, .svglite path, .svglite rect, .svglite circle { fill: none;
#>  stroke: #000000; stroke-linecap: round; stroke-linejoin: round;
#>  stroke-miterlimit: 10.00; } .svglite text { white-space: pre; }
#>  .svglite g.glyphgroup path { fill: inherit; stroke: none; } ]]><rect
#>  width='100%' height='100%' style='stroke: none; fill: none;'/>
#>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='> <rect x='0.00'
#>  y='0.00' width='141.73' height='34.02' /> <g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'> <clipPath
#>  id='cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ=='> <rect x='1.00' y='2.99'
#>  width='139.74' height='20.62' /> <g
#>  clip-path='url(#cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ==)'><rect x='72.83'
#>  y='3.93' width='67.91' height='18.75' style='stroke-width: 1.07;
#>  stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill:
#>  #DDEAF7;' /><rect x='1.00' y='3.93' width='71.83' height='18.75'
#>  style='stroke-width: 1.07; stroke: none; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #3181BD;' /><g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><text x='1.00'
#>  y='30.18' style='font-size: 8.00px; font-family: "Arial";'
#>  textLength='43.61px' lengthAdjust='spacingAndGlyphs'>2 categories
#>  <td headers="n_missing" class="gt_row gt_right">0.4%
#>  <td headers="type" class="gt_row gt_left gt_striped"><svg
#>  aria-hidden="true" role="img" viewBox="0 0 512 512"
#>  style="height:20px;width:20px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#4e79a7;overflow:visible;position:relative;"><path
#>  d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0
#>  24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32
#>  32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0
#>  160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3
#>  32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32
#>  32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7
#>  24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3
#>  0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24
#>  24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"/>
#>  <td headers="name" class="gt_row gt_left gt_striped"
#>  style="font-weight: bold;"><div style='max-width: 150px;'>
#>  <details style='font-weight: normal !important;'>
#>  <summary style='font-weight: bold !important;'>Grade
#>  3, 2 and 1
#> 
#>  <td headers="value" class="gt_row gt_center gt_striped"><?xml
#>  version='1.0' encoding='UTF-8' ?><svg
#>  xmlns='http://www.w3.org/2000/svg'
#>  xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt'
#>  height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'> <style
#>  type='text/css'><![CDATA[ .svglite line, .svglite polyline, .svglite
#>  polygon, .svglite path, .svglite rect, .svglite circle { fill: none;
#>  stroke: #000000; stroke-linecap: round; stroke-linejoin: round;
#>  stroke-miterlimit: 10.00; } .svglite text { white-space: pre; }
#>  .svglite g.glyphgroup path { fill: inherit; stroke: none; } ]]><rect
#>  width='100%' height='100%' style='stroke: none; fill: none;'/>
#>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='> <rect x='0.00'
#>  y='0.00' width='141.73' height='34.02' /> <g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'> <clipPath
#>  id='cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ=='> <rect x='1.00' y='2.99'
#>  width='139.74' height='20.62' /> <g
#>  clip-path='url(#cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ==)'><rect x='99.21'
#>  y='3.93' width='41.53' height='18.75' style='stroke-width: 1.07;
#>  stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill:
#>  #DDEAF7;' /><rect x='56.56' y='3.93' width='42.65' height='18.75'
#>  style='stroke-width: 1.07; stroke: none; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #91B4DA;' /><rect x='1.00' y='3.93'
#>  width='55.56' height='18.75' style='stroke-width: 1.07; stroke: none;
#>  stroke-linecap: butt; stroke-linejoin: miter; fill: #3181BD;' /><g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><text x='1.00'
#>  y='30.18' style='font-size: 8.00px; font-family: "Arial";'
#>  textLength='43.61px' lengthAdjust='spacingAndGlyphs'>3 categories
#>  <td headers="n_missing" class="gt_row gt_right gt_striped">0.4%
#>  <td headers="type" class="gt_row gt_left"><svg aria-hidden="true"
#>  role="img" viewBox="0 0 512 512"
#>  style="height:20px;width:20px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#4e79a7;overflow:visible;position:relative;"><path
#>  d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0
#>  24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32
#>  32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0
#>  160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3
#>  32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32
#>  32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7
#>  24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3
#>  0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24
#>  24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"/>
#>  <td headers="name" class="gt_row gt_left" style="font-weight:
#>  bold;"><div style='max-width: 150px;'>
#>  <details style='font-weight: normal !important;'>
#>  <summary style='font-weight: bold !important;'>TStage
#>  4, 3, 2 and 1
#> 
#>  <td headers="value" class="gt_row gt_center"><?xml version='1.0'
#>  encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg'
#>  xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt'
#>  height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'> <style
#>  type='text/css'><![CDATA[ .svglite line, .svglite polyline, .svglite
#>  polygon, .svglite path, .svglite rect, .svglite circle { fill: none;
#>  stroke: #000000; stroke-linecap: round; stroke-linejoin: round;
#>  stroke-miterlimit: 10.00; } .svglite text { white-space: pre; }
#>  .svglite g.glyphgroup path { fill: inherit; stroke: none; } ]]><rect
#>  width='100%' height='100%' style='stroke: none; fill: none;'/>
#>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='> <rect x='0.00'
#>  y='0.00' width='141.73' height='34.02' /> <g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'> <clipPath
#>  id='cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ=='> <rect x='1.00' y='2.99'
#>  width='139.74' height='20.62' /> <g
#>  clip-path='url(#cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ==)'><rect x='127.27'
#>  y='3.93' width='13.47' height='18.75' style='stroke-width: 1.07;
#>  stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill:
#>  #DDEAF7;' /><rect x='98.65' y='3.93' width='28.62' height='18.75'
#>  style='stroke-width: 1.07; stroke: none; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #ABC6E4;' /><rect x='63.29' y='3.93'
#>  width='35.36' height='18.75' style='stroke-width: 1.07; stroke: none;
#>  stroke-linecap: butt; stroke-linejoin: miter; fill: #75A3D0;' /><rect
#>  x='1.00' y='3.93' width='62.29' height='18.75' style='stroke-width:
#>  1.07; stroke: none; stroke-linecap: butt; stroke-linejoin: miter;
#>  fill: #3181BD;' /><g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><text x='1.00'
#>  y='30.18' style='font-size: 8.00px; font-family: "Arial";'
#>  textLength='43.61px' lengthAdjust='spacingAndGlyphs'>4 categories
#>  <td headers="n_missing" class="gt_row gt_right">0.4%
#>  <td headers="type" class="gt_row gt_left gt_striped"><svg
#>  aria-hidden="true" role="img" viewBox="0 0 512 512"
#>  style="height:20px;width:20px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#4e79a7;overflow:visible;position:relative;"><path
#>  d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0
#>  24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32
#>  32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0
#>  160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3
#>  32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32
#>  32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7
#>  24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3
#>  0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24
#>  24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"/>
#>  <td headers="name" class="gt_row gt_left gt_striped"
#>  style="font-weight: bold;"><div style='max-width: 150px;'>
#>  <details style='font-weight: normal !important;'>
#>  <summary style='font-weight: bold !important;'>LVI
#>  Absent and Present
#> 
#>  <td headers="value" class="gt_row gt_center gt_striped"><?xml
#>  version='1.0' encoding='UTF-8' ?><svg
#>  xmlns='http://www.w3.org/2000/svg'
#>  xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt'
#>  height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'> <style
#>  type='text/css'><![CDATA[ .svglite line, .svglite polyline, .svglite
#>  polygon, .svglite path, .svglite rect, .svglite circle { fill: none;
#>  stroke: #000000; stroke-linecap: round; stroke-linejoin: round;
#>  stroke-miterlimit: 10.00; } .svglite text { white-space: pre; }
#>  .svglite g.glyphgroup path { fill: inherit; stroke: none; } ]]><rect
#>  width='100%' height='100%' style='stroke: none; fill: none;'/>
#>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='> <rect x='0.00'
#>  y='0.00' width='141.73' height='34.02' /> <g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'> <clipPath
#>  id='cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ=='> <rect x='1.00' y='2.99'
#>  width='139.74' height='20.62' /> <g
#>  clip-path='url(#cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ==)'><rect x='81.25'
#>  y='3.93' width='59.49' height='18.75' style='stroke-width: 1.07;
#>  stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill:
#>  #DDEAF7;' /><rect x='1.00' y='3.93' width='80.25' height='18.75'
#>  style='stroke-width: 1.07; stroke: none; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #3181BD;' /><g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><text x='1.00'
#>  y='30.18' style='font-size: 8.00px; font-family: "Arial";'
#>  textLength='43.61px' lengthAdjust='spacingAndGlyphs'>2 categories
#>  <td headers="n_missing" class="gt_row gt_right gt_striped">0.4%
#>  <td headers="type" class="gt_row gt_left"><svg aria-hidden="true"
#>  role="img" viewBox="0 0 512 512"
#>  style="height:20px;width:20px;vertical-align:-0.125em;margin-left:auto;margin-right:auto;font-size:inherit;fill:#4e79a7;overflow:visible;position:relative;"><path
#>  d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0
#>  24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32
#>  32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0
#>  160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3
#>  32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32
#>  32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7
#>  24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3
#>  0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24
#>  24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"/>
#>  <td headers="name" class="gt_row gt_left" style="font-weight:
#>  bold;"><div style='max-width: 150px;'>
#>  <details style='font-weight: normal !important;'>
#>  <summary style='font-weight: bold !important;'>PNI
#>  Absent and Present
#> 
#>  <td headers="value" class="gt_row gt_center"><?xml version='1.0'
#>  encoding='UTF-8' ?><svg xmlns='http://www.w3.org/2000/svg'
#>  xmlns:xlink='http://www.w3.org/1999/xlink' width='141.73pt'
#>  height='34.02pt' viewBox='0 0 141.73 34.02'><g class='svglite'> <style
#>  type='text/css'><![CDATA[ .svglite line, .svglite polyline, .svglite
#>  polygon, .svglite path, .svglite rect, .svglite circle { fill: none;
#>  stroke: #000000; stroke-linecap: round; stroke-linejoin: round;
#>  stroke-miterlimit: 10.00; } .svglite text { white-space: pre; }
#>  .svglite g.glyphgroup path { fill: inherit; stroke: none; } ]]><rect
#>  width='100%' height='100%' style='stroke: none; fill: none;'/>
#>  <clipPath id='cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg=='> <rect x='0.00'
#>  y='0.00' width='141.73' height='34.02' /> <g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'> <clipPath
#>  id='cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ=='> <rect x='1.00' y='2.99'
#>  width='139.74' height='20.62' /> <g
#>  clip-path='url(#cpMS4wMHwxNDAuNzR8Mi45OXwyMy42MQ==)'><rect x='94.16'
#>  y='3.93' width='46.58' height='18.75' style='stroke-width: 1.07;
#>  stroke: none; stroke-linecap: butt; stroke-linejoin: miter; fill:
#>  #DDEAF7;' /><rect x='1.00' y='3.93' width='93.16' height='18.75'
#>  style='stroke-width: 1.07; stroke: none; stroke-linecap: butt;
#>  stroke-linejoin: miter; fill: #3181BD;' /><g
#>  clip-path='url(#cpMC4wMHwxNDEuNzN8MC4wMHwzNC4wMg==)'><text x='1.00'
#>  y='30.18' style='font-size: 8.00px; font-family: "Arial";'
#>  textLength='43.61px' lengthAdjust='spacingAndGlyphs'>2 categories
#>  <td headers="n_missing" class="gt_row gt_right">0.4%

Cross-tabulation Analysis

Create contingency tables with appropriate statistical tests:

crosstable(
  data = histopathology,
  vars = "Grade",
  group = "Group"
)
#> 
#>  CROSS TABLE
#> 
#> character(0)
#> 
#> character(0)
#> 
#>  <div class="figure" id="tbl3">
#>  #tbl3 body .figbody {
#>  font-family: Corbel, "Lucida Grande", "Lucida Sans Unicode", "Lucida
#>  Sans", "DejaVu Sans", "Bitstream Vera Sans", "Liberation Sans",
#>  Verdana, "Verdana Ref", sans-serif;
#>  font-size: 66%;
#>  -webkit-print-color-adjust: exact;
#>  }
#> 
#>  #tbl3 .figure { margin-left: auto;
#>  margin-right: auto;
#>  }
#>  #tbl3 .caption { text-align: left;
#>  text-indent: 2em;
#>  padding: 0.5em 0 0.5em 0;
#>  font-weight: bold;
#>  background-color: #f7f4ef !important;
#>  border: 1px solid black;
#>  }
#> 
#>  #tbl3 .figbody {
#>  text-align: center;
#>  border: 1px solid black
#>  }
#> 
#>  #tbl3 .figbody table {
#>  margin: 0;
#>  width: 100%;
#>  }
#> 
#>  #tbl3 .figbody td {
#>  padding: 0.2em 0.5em 0.2em 0.5em;
#>  }
#> 
#>  #tbl3 .figbody thead tr td
#>  {
#>  font-weight: bold;
#>  }
#> 
#>  #tbl3 .figbody tbody tr:nth-child(odd) {background: #fffbed
#>  !important;}
#> 
#>  #tbl3 .header td {text-align: center;}
#> 
#>  #tbl3 .subheader { font-size: smaller; }
#>  #tbl3 .subheader td { text-align: center; /* border-bottom: 1pt solid
#>  black; */ }
#> 
#>  #tbl3 .subheader em {font-style: normal;}
#> 
#>  #tbl3 tbody .variable {
#>  float: left;
#>  text-align: left;
#>  padding-left: 0.5em;
#>  }
#> 
#>  #tbl3 .units {
#>  float: right;
#>  font-size: x-small;
#>  text-align: right;
#>  padding-left: 1em;
#>  vertical-align: text-bottom; /* FIXME why doesn't this work */
#>  }
#> 
#>  #tbl3 td .align{
#>  display: inline-block;
#>  margin: 0 auto;
#>  }
#> 
#>  #tbl3 .nobr {
#>  white-space: nowrap;
#>  }
#>  #tbl3 .supsub {
#>  display: inline-block;
#>  margin: -9em 0;
#>  vertical-align: -0.55em;
#>  line-height: 1.35em;
#>  font-size: 70%;
#>  text-align: left;
#>  }
#> 
#>  #tbl3 .statistics {font-style: italic;}
#>  #tbl3 .statistics {padding-right: 0.5em;}
#>  <div class="caption">Cross Table for Dependent group<div
#>  class="figbody"><table class="tangram">
#>  <th class="header even tg-label"><span class="variable"><th
#>  class="header even tg-label"><span class="variable">N<th class="header
#>  even tg-label"><span class="variable">Control<th class="header even
#>  tg-label"><span class="variable">Treatment<th class="header even
#>  tg-label"><span class="variable">Test Statistic<tr
#>  class="subheaderrow"><th class="subheader header even tg-label"><span
#>  class="variable"><th class="subheader header even tg-label"><span
#>  class="variable"><th class="subheader header even data N"><span
#>  class="N">(N=120)<th class="subheader header even data N"><span
#>  class="N">(N=129)<th class="subheader header even tg-label"><span
#>  class="variable">
#>  <td class="header odd tg-label"><span class="variable">Grade<td
#>  class="odd data N"><span class="N">249<td class="odd">1.0 2.0 3.0<td
#>  class="odd">1.0 2.0 3.0<td class="statistics odd">F1,246=0.74, P=0.393
#>  <div class="footnote">N is the number of non-missing value.
#>  1Kruskal-Wallis. 2Pearson. 3Wilcoxon.
# Multiple variables cross-tabulation
crosstable(
  data = histopathology,
  vars = c("Grade", "TStage"),
  group = "LymphNodeMetastasis"
)
#> 
#>  CROSS TABLE
#> 
#> character(0)
#> 
#> character(0)
#> 
#>  <div class="figure" id="tbl3">
#>  #tbl3 body .figbody {
#>  font-family: Corbel, "Lucida Grande", "Lucida Sans Unicode", "Lucida
#>  Sans", "DejaVu Sans", "Bitstream Vera Sans", "Liberation Sans",
#>  Verdana, "Verdana Ref", sans-serif;
#>  font-size: 66%;
#>  -webkit-print-color-adjust: exact;
#>  }
#> 
#>  #tbl3 .figure { margin-left: auto;
#>  margin-right: auto;
#>  }
#>  #tbl3 .caption { text-align: left;
#>  text-indent: 2em;
#>  padding: 0.5em 0 0.5em 0;
#>  font-weight: bold;
#>  background-color: #f7f4ef !important;
#>  border: 1px solid black;
#>  }
#> 
#>  #tbl3 .figbody {
#>  text-align: center;
#>  border: 1px solid black
#>  }
#> 
#>  #tbl3 .figbody table {
#>  margin: 0;
#>  width: 100%;
#>  }
#> 
#>  #tbl3 .figbody td {
#>  padding: 0.2em 0.5em 0.2em 0.5em;
#>  }
#> 
#>  #tbl3 .figbody thead tr td
#>  {
#>  font-weight: bold;
#>  }
#> 
#>  #tbl3 .figbody tbody tr:nth-child(odd) {background: #fffbed
#>  !important;}
#> 
#>  #tbl3 .header td {text-align: center;}
#> 
#>  #tbl3 .subheader { font-size: smaller; }
#>  #tbl3 .subheader td { text-align: center; /* border-bottom: 1pt solid
#>  black; */ }
#> 
#>  #tbl3 .subheader em {font-style: normal;}
#> 
#>  #tbl3 tbody .variable {
#>  float: left;
#>  text-align: left;
#>  padding-left: 0.5em;
#>  }
#> 
#>  #tbl3 .units {
#>  float: right;
#>  font-size: x-small;
#>  text-align: right;
#>  padding-left: 1em;
#>  vertical-align: text-bottom; /* FIXME why doesn't this work */
#>  }
#> 
#>  #tbl3 td .align{
#>  display: inline-block;
#>  margin: 0 auto;
#>  }
#> 
#>  #tbl3 .nobr {
#>  white-space: nowrap;
#>  }
#>  #tbl3 .supsub {
#>  display: inline-block;
#>  margin: -9em 0;
#>  vertical-align: -0.55em;
#>  line-height: 1.35em;
#>  font-size: 70%;
#>  text-align: left;
#>  }
#> 
#>  #tbl3 .statistics {font-style: italic;}
#>  #tbl3 .statistics {padding-right: 0.5em;}
#>  <div class="caption">Cross Table for Dependent
#>  lymph_node_metastasis<div class="figbody"><table class="tangram">
#>  <th class="header even tg-label"><span class="variable"><th
#>  class="header even tg-label"><span class="variable">N<th class="header
#>  even tg-label"><span class="variable">Absent<th class="header even
#>  tg-label"><span class="variable">Present<th class="header even
#>  tg-label"><span class="variable">Test Statistic<tr
#>  class="subheaderrow"><th class="subheader header even tg-label"><span
#>  class="variable"><th class="subheader header even tg-label"><span
#>  class="variable"><th class="subheader header even data N"><span
#>  class="N">(N=153)<th class="subheader header even data N"><span
#>  class="N">(N=96)<th class="subheader header even tg-label"><span
#>  class="variable">
#>  <td class="header odd tg-label"><span class="variable">Grade<td
#>  class="odd data N"><span class="N">249<td class="odd">1.0 2.0 3.0<td
#>  class="odd">1.0 2.0 3.0<td class="statistics odd">F1,246=0.66, P=0.423
#>  <td class="header even tg-label"><span class="variable">TStage<td
#>  class="even data N"><span class="N">249<td class="even">2.0 3.0 4.0<td
#>  class="even">2.0 3.0 4.0<td class="statistics even">F1,246=0.54,
#>  P=0.463
#>  <div class="footnote">N is the number of non-missing value.
#>  1Kruskal-Wallis. 2Pearson. 3Wilcoxon.

Data Visualization

Age Pyramid

Visualize age and sex distribution:

agepyramid(
  data = histopathology,
  age = "Age",
  gender = "Sex",
  female = "Female"
)
#> 
#>  AGE PYRAMID
#> 
#>  Population Data                  
#>  ──────────────────────────────── 
#>    Population    Female    Male   
#>  ──────────────────────────────── 
#>    (70,73]            8       5   
#>    (65,70]           17      11   
#>    (60,65]           16      10   
#>    (55,60]           14      17   
#>    (50,55]            8      11   
#>    (45,50]            8      15   
#>    (40,45]           19      14   
#>    (35,40]           13      15   
#>    (30,35]            6      13   
#>    (25,30]           10      17   
#>    (20,25]            1       0   
#>  ────────────────────────────────

Alluvial Diagrams

Show relationships between categorical variables:

alluvial(
  data = histopathology,
  vars = c("Grade", "TStage", "LymphNodeMetastasis", "Outcome"),
  condensationvar = "Outcome"
)
#> 
#>  ALLUVIAL DIAGRAMS
#> 
#> character(0)
#> [1] "Number of flows: 49"
#> [1] "Original Dataframe reduced to 19.6 %"
#> [1] "Maximum weight of a single flow 5.6 %"

Venn Diagrams

Analyze overlap between sets:

# Create binary indicators for Venn diagram
histopathology_venn <- histopathology %>%
  mutate(
    LVI_present = ifelse(LVI == "Present", 1, 0),
    PNI_present = ifelse(PNI == "Present", 1, 0),
    LN_positive = ifelse(LymphNodeMetastasis == "Present", 1, 0)
  )

venn(
  data = histopathology_venn,
  var1 = "LVI_present",
  var1true = 1,
  var2 = "PNI_present",
  var2true = 1,
  var3 = "LN_positive",
  var3true = 1,
  var4 = NULL,
  var4true = NULL
)
#> 
#>  VENN DIAGRAM
#> 
#> character(0)

Data Quality Assessment

Benford’s Law Analysis

Assess data quality using Benford’s law - useful for detecting fabricated data:

# Analyze first digits of continuous measurements
benford(
  data = histopathology,
  var = "MeasurementA"
)
#> 
#>  BENFORD ANALYSIS
#> 
#>  See
#>  <a href = 'https://github.com/carloscinelli/benford.analysis'>Package
#>  documentation for interpratation.
#> 
#> Benford object:
#>  
#> Data: var 
#> Number of observations used = 135 
#> Number of obs. for second order = 134 
#> First digits analysed = 2
#> 
#> Mantissa: 
#> 
#>    Statistic  Value
#>         Mean  0.506
#>          Var  0.108
#>  Ex.Kurtosis -1.514
#>     Skewness -0.037
#> 
#> 
#> The 5 largest deviations: 
#> 
#>   digits absolute.diff
#> 1     52          4.88
#> 2     17          4.65
#> 3     66          4.12
#> 4     13          3.66
#> 5     16          3.55
#> 
#> Stats:
#> 
#>  Pearson's Chi-squared test
#> 
#> data:  var
#> X-squared = 137.97, df = 89, p-value = 0.0006808
#> 
#> 
#>  Mantissa Arc Test
#> 
#> data:  var
#> L2 = 0.058715, df = 2, p-value = 0.000361
#> 
#> Mean Absolute Deviation (MAD): 0.008005873
#> MAD Conformity - Nigrini (2012): Nonconformity
#> Distortion Factor: NaN
#> 
#> Remember: Real data will never conform perfectly to Benford's Law. You should not focus on p-values!    MeasurementA
#>            <num>
#>  1:    0.0176978
#>  2:    1.7391655
#>  3:    0.5256537
#>  4:    1.7557878
#>  5:    0.5239132
#>  6:    0.1729459
#>  7:    0.1769035
#>  8:    0.5289038
#>  9:    0.5236107
#> 10:    1.7691411
#> 11:    0.5241260
#> 12:    0.5263020
#> 13:    1.7349714
#> 14:    0.1749262

#> $xlog
#> [1] FALSE
#> 
#> $ylog
#> [1] FALSE
#> 
#> $adj
#> [1] 0.5
#> 
#> $ann
#> [1] TRUE
#> 
#> $ask
#> [1] FALSE
#> 
#> $bg
#> [1] "transparent"
#> 
#> $bty
#> [1] "o"
#> 
#> $cex
#> [1] 0.66
#> 
#> $cex.axis
#> [1] 1
#> 
#> $cex.lab
#> [1] 1
#> 
#> $cex.main
#> [1] 1.2
#> 
#> $cex.sub
#> [1] 1
#> 
#> $col
#> [1] "black"
#> 
#> $col.axis
#> [1] "black"
#> 
#> $col.lab
#> [1] "black"
#> 
#> $col.main
#> [1] "black"
#> 
#> $col.sub
#> [1] "black"
#> 
#> $crt
#> [1] 0
#> 
#> $err
#> [1] 0
#> 
#> $family
#> [1] ""
#> 
#> $fg
#> [1] "black"
#> 
#> $fig
#> [1] 0.6666667 1.0000000 0.0000000 0.5000000
#> 
#> $fin
#> [1] 7 5
#> 
#> $font
#> [1] 1
#> 
#> $font.axis
#> [1] 1
#> 
#> $font.lab
#> [1] 1
#> 
#> $font.main
#> [1] 2
#> 
#> $font.sub
#> [1] 1
#> 
#> $lab
#> [1] 5 5 7
#> 
#> $las
#> [1] 0
#> 
#> $lend
#> [1] "round"
#> 
#> $lheight
#> [1] 1
#> 
#> $ljoin
#> [1] "round"
#> 
#> $lmitre
#> [1] 10
#> 
#> $lty
#> [1] "solid"
#> 
#> $lwd
#> [1] 1
#> 
#> $mai
#> [1] 1.02 0.82 0.82 0.42
#> 
#> $mar
#> [1] 5.1 4.1 4.1 2.1
#> 
#> $mex
#> [1] 1
#> 
#> $mfcol
#> [1] 1 1
#> 
#> $mfg
#> [1] 1 1 1 1
#> 
#> $mfrow
#> [1] 1 1
#> 
#> $mgp
#> [1] 3 1 0
#> 
#> $mkh
#> [1] 0.001
#> 
#> $new
#> [1] TRUE
#> 
#> $oma
#> [1] 0 0 0 0
#> 
#> $omd
#> [1] 0 1 0 1
#> 
#> $omi
#> [1] 0 0 0 0
#> 
#> $pch
#> [1] 1
#> 
#> $pin
#> [1] 5.76 3.16
#> 
#> $plt
#> [1] 0.08857143 0.91142857 0.18400000 0.81600000
#> 
#> $ps
#> [1] 12
#> 
#> $pty
#> [1] "m"
#> 
#> $smo
#> [1] 1
#> 
#> $srt
#> [1] 0
#> 
#> $tck
#> [1] NA
#> 
#> $tcl
#> [1] -0.5
#> 
#> $usr
#> [1] 0.568 1.432 0.568 1.432
#> 
#> $xaxp
#> [1] 0 1 5
#> 
#> $xaxs
#> [1] "r"
#> 
#> $xaxt
#> [1] "s"
#> 
#> $xpd
#> [1] FALSE
#> 
#> $yaxp
#> [1] 0 1 5
#> 
#> $yaxs
#> [1] "r"
#> 
#> $yaxt
#> [1] "s"
#> 
#> $ylbias
#> [1] 0.2

Variable Tree Summary

Get a hierarchical overview of your dataset:

# Variable tree visualization example
# Note: vartree requires specific parameter configuration for optimal results
# This is a demonstration of the function call structure
vartree_result <- vartree(
  data = histopathology,
  vars = c("Grade", "TStage", "LVI", "PNI"),
  percvar = NULL,
  percvarLevel = NULL,
  summaryvar = NULL,
  prunebelow = NULL,
  pruneLevel1 = NULL,
  pruneLevel2 = NULL,
  follow = NULL,
  followLevel1 = NULL,
  followLevel2 = NULL,
  excl = FALSE,
  vp = TRUE,
  horizontal = FALSE,
  sline = TRUE,
  varnames = FALSE,
  nodelabel = TRUE,
  pct = FALSE
)

# For detailed vartree examples, see the vartree-specific vignette
cat("Variable tree visualization complete. See vartree documentation for advanced usage.")

Working with Treatment Response Data

Load the treatment response dataset for oncology-specific analyses:

# Load treatment response data
data(treatmentResponse)
if(exists("treatmentResponse")) {
  head(treatmentResponse)
} else {
  cat("treatmentResponse dataset not found. Using histopathology dataset instead.\n")
  head(histopathology)
}
#>   PatientID ResponseValue
#> 1    PT0001          63.5
#> 2    PT0002        -100.0
#> 3    PT0003         -20.5
#> 4    PT0004          55.1
#> 5    PT0005         -60.5
#> 6    PT0006         -93.6

Waterfall Plot

Visualize individual patient treatment responses:

# Waterfall plot example (requires proper treatmentResponse dataset)
if(exists("treatmentResponse") && "PatientID" %in% names(treatmentResponse)) {
  waterfall(
    data = treatmentResponse,
    patientID = "PatientID",
    responseVar = "ResponseValue",
    timeVar = NULL,
    showWaterfallPlot = TRUE
  )
} else {
  cat("Waterfall plot requires treatmentResponse dataset with PatientID and ResponseValue columns.\n")
  cat("See waterfall vignette for detailed examples with proper data structure.\n")
}

Integration with jamovi

All functions in this package are also available through jamovi’s graphical interface:

  1. Install the module in jamovi
  2. Navigate to: Exploration > ClinicoPath Descriptives
  3. Select your analysis function
  4. Configure options through the GUI
  5. Generate results with point-and-click ease

jamovi Advantages

  • No programming required
  • Interactive parameter adjustment
  • Real-time result updates
  • Export capabilities for reports
  • Accessible to non-programmers

Next Steps

This vignette covered the basic functionality of ClinicoPathDescriptives. For more advanced usage, see:

  • Clinical Workflow Vignette: Complete analysis workflows for clinical research
  • Treatment Response Analysis: Advanced oncology analysis techniques
  • Data Quality and Exploration: Comprehensive data assessment methods
  • Visualization Gallery: Advanced plotting techniques and customization

Citation

citation("ClinicoPathDescriptives")