---
title: "Installation and Setup"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Installation and Setup}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
eval = FALSE
)
```
This document provides instructions for installing the `summata` package and configuring the dependencies required for complete functionality. The package requires R ≥ 4.2.0 and several additional components for document generation.
---
# Package Installation
## From Repository
Install the stable release from CRAN:
```{r}
install.packages("summata")
```
Alternatively, the latest development version may be installed from GitHub:
```{r}
install.packages("remotes")
remotes::install_github("phmcc/summata")
```
The development version is available from Codeberg:
```{r}
remotes::install_git("https://codeberg.org/phmcc/summata.git")
```
## Verification
Confirm successful installation by loading the package:
```{r}
library(summata)
packageVersion("summata")
```
---
# Dependencies
## Required Dependencies
The following packages are installed automatically as dependencies:
| Package | Purpose |
|:--------|:--------|
| `data.table` | High-performance data manipulation and core data operations |
| `survival` | Survival and time-to-event analysis |
| `ggplot2` | Visualization system for forest plots and graphics |
| `stats` | Statistical functions and model fitting |
| `grDevices` | Graphics devices and color palettes |
## Optional Dependencies
Additional packages extend functionality for specific use-cases:
| Package | Purpose | Required For |
|:--------|:--------|:-------------|
| `lme4` | Linear mixed-effects models | `lmer()`, `glmer()` model types |
| `coxme` | Mixed-effects Cox models | `coxme()` model type |
| `xtable` | LaTeX table generation | `table2pdf()`, `table2tex()`, `table2html()` |
| `flextable` | Office document tables | `table2docx()`, `table2pptx()`, `table2rtf()` |
| `officer` | Office document creation | `table2docx()`, `table2pptx()` |
| `knitr` | Dynamic document generation | R Markdown integration, vignettes |
| `rmarkdown` | R Markdown documents | Vignette rendering |
| `ragg` | High-quality graphics | Enhanced PNG rendering with better fonts |
| `systemfonts` | Font management | Font detection for graphics |
| `tinytex` | R-integrated LaTeX distribution | PDF table export via `table2pdf()` |
| `MASS` | Statistical methods | Model diagnostics and testing |
| `MuMIn` | Multi-model inference | Model selection and averaging |
| `pROC` | ROC curve analysis | Diagnostic performance evaluation |
| `ResourceSelection` | Goodness-of-fit tests | Hosmer-Lemeshow tests for logistic models |
| `stringr` | String manipulation | Text processing utilities |
| `utils` | Utility functions | Data import/export helpers |
| `withr` | Temporary state changes | Testing and safe state modifications |
Install optional dependencies as needed:
```r
# For mixed-effects models
install.packages(c("lme4", "coxme"))
# For table export (all formats)
install.packages(c("xtable", "flextable", "officer", "knitr", "tinytex"))
# For enhanced graphics
install.packages(c("ragg", "systemfonts"))
# For model diagnostics and selection
install.packages(c("MASS", "MuMIn", "pROC", "ResourceSelection"))
```
Or install all suggested packages at once:
```r
install.packages("summata", dependencies = TRUE)
```
---
# LaTeX Configuration
PDF and LaTeX export through `table2pdf()` and `table2tex()` require a LaTeX distribution.
## TinyTeX (Recommended)
TinyTeX provides a lightweight, R-integrated LaTeX distribution:
```{r}
install.packages("tinytex")
tinytex::install_tinytex()
```
Verify the installation:
```{r}
tinytex::is_tinytex()
tinytex::tlmgr_version()
```
TinyTeX installs required LaTeX packages automatically on first use.
## Alternative LaTeX Distributions
Full LaTeX distributions may be installed system-wide:
| Distribution | Platform | URL |
|:-------------|:---------|:----|
| TeX Live | Cross-platform | https://www.tug.org/texlive/ |
| MiKTeX | Windows | https://miktex.org/ |
| MacTeX | macOS | https://www.tug.org/mactex/ |
For Debian/Ubuntu systems:
```{bash}
sudo apt install texlive-latex-base texlive-latex-extra texlive-fonts-recommended
```
## Required LaTeX Packages
The export functions utilize the following LaTeX packages:
| Category | Packages |
|:---------|:---------|
| Typography | fontenc, inputenc, helvet |
| Tables | array, booktabs, longtable, colortbl |
| Layout | geometry, pdflscape, lscape |
| Graphics | graphicx, xcolor |
| Specialized | standalone, varwidth, float, caption |
With TinyTeX, these packages install automatically. For standard distributions:
```{bash}
tlmgr install fontenc inputenc array booktabs longtable graphicx geometry \
pdflscape lscape helvet standalone varwidth float caption xcolor colortbl
```
---
# Microsoft Office Export
Export to Word, PowerPoint, and RTF formats requires:
```{r}
install.packages(c("flextable", "officer"))
```
These packages enable creation of `.docx`, `.pptx`, and `.rtf` files that can be opened and edited in Microsoft Office or compatible applications.
---
# Export Verification Procedure
Execute the following to verify complete functionality:
```{r}
library(summata)
# Create test data
test_data <- data.frame(
Variable = c("Sample Size", "Mean", "Standard Deviation"),
Value = c("150", "45.3", "12.1")
)
# Test Word export (requires flextable, officer)
table2docx(test_data, file = file.path(tempdir(), "verification_test.docx"))
# Test PDF export (requires xtable, LaTeX)
table2pdf(test_data, file = file.path(tempdir(), "verification_test.pdf"))
# Clean up
file.remove(
file.path(tempdir(), "verification_test.docx"),
file.path(tempdir(), "verification_test.pdf")
)
```
Successful execution confirms proper configuration of all export-related dependencies.
---
# Troubleshooting
## LaTeX Not Found
If PDF generation fails, verify LaTeX accessibility:
```{r}
Sys.which("pdflatex")
```
An empty return value indicates LaTeX is not in the system PATH. Solutions include:
1. Restart the R session after LaTeX installation
2. Add the LaTeX binary directory to PATH manually
3. Reinstall TinyTeX: `tinytex::reinstall_tinytex()`
## Missing LaTeX Packages
For TinyTeX, install missing packages directly:
```{r}
tinytex::tlmgr_install("package_name")
```
For compilation errors, examine the log file:
```{r}
table2pdf(test_data, file = file.path(tempdir(), "debug.pdf"), show_logs = TRUE)
```
## Package Installation Failures
Ensure repository access is configured:
```{r}
options(repos = c(CRAN = "https://cloud.r-project.org"))
```
For packages requiring system libraries (Linux):
```{bash}
sudo apt install r-base-dev libcurl4-openssl-dev libssl-dev libxml2-dev
```
## Write Permission Errors
Verify write access to the target directory:
```{r}
getwd()
file.access(getwd(), mode = 2) # Returns 0 if writable
```
---
# System Requirements
| Component | Requirement |
|:----------|:------------|
| R | ≥ 4.2.0 |
| Operating System | Windows, macOS, or Linux |
| RAM | 4 GB minimum; 8 GB recommended |
| Disk Space | Base package (< 5 MB)
TinyTeX (~150 MB)
Full LaTeX distribution (2–6 GB) |