Title: Convert 'sjPlot' HTML-Tables to R 'data.frame'
Version: 0.0.5
Description: A small set of helper functions to convert 'sjPlot' HTML-tables to R data.frame objects / knitr::kable-tables.
License: GPL (≥ 3)
URL: https://github.com/kapsner/sjtable2df
BugReports: https://github.com/kapsner/sjtable2df/issues
Depends: R (≥ 4.1.0)
Imports: data.table, kableExtra, rlang, rvest, stats, xml2
Suggests: lintr, lme4, mlbench, quarto, sjPlot, testthat (≥ 3.0.1)
VignetteBuilder: quarto
Config/testthat/edition: 3
Config/testthat/parallel: false
Date/Publication: 2026-01-18 10:30:02 UTC
Encoding: UTF-8
SystemRequirements: Quarto command line tools (https://github.com/quarto-dev/quarto-cli).
RoxygenNote: 7.3.3
NeedsCompilation: no
Packaged: 2026-01-18 10:02:15 UTC; user
Author: Lorenz A. Kapsner ORCID iD [cre, aut, cph]
Maintainer: Lorenz A. Kapsner <lorenz.kapsner@gmail.com>
Repository: CRAN

Dot Helper

Description

https://github.com/tidyverse/magrittr/issues/29


mtab2df

Description

Convert table from sjPlot::tab_model to R data.frame or knitr::kable

Usage

mtab2df(mtab, n_models, output = "data.table", ...)

Arguments

mtab

A model table, created with sjPlot::tab_model.

n_models

An integer, specifiying the number of models in the table.

output

A character vector. Allowed values are: "data.table" (default), "data.frame" or "kable". The function's return value is of the respective type.

...

Further arguments to be passed to kableExtra::kbl.

Value

The table is returned as an R object of the type specified with the output argument.

Examples


if (requireNamespace("sjPlot", quietly = TRUE)) {
  set.seed(1)
  dataset <- data.table::data.table(
    "var1" = factor(sample(
      x = c("yes", "no"),
      size = 100,
      replace = TRUE,
      prob = c(.3, .7)
    )),
    "var2" = factor(sample(
      x = c("yes", "no"),
      size = 100,
      replace = TRUE
    )),
    "var3" = rnorm(100)
  )

  # models
  m0 <- stats::glm(
    var1 ~ 1,
    data = dataset,
    family = binomial(link = "logit")
  )
  m1 <- stats::glm(
    var1 ~ var2,
    data = dataset,
    family = binomial(link = "logit")
  )
  m2 <- stats::glm(
    var1 ~ var2 + var3,
    data = dataset,
    family = binomial(link = "logit")
  )

  m_table <- sjPlot::tab_model(m0, m1, m2, show.aic = TRUE)

  final_tab <- sjtable2df::mtab2df(mtab = m_table, n_models = 3)

}

xtab2df

Description

Convert table from sjPlot::tab_xtab to R data.frame or knitr::kable

Usage

xtab2df(xtab, output = "data.table", threeparttable = FALSE, ...)

Arguments

xtab

A contingency table, created with sjPlot::tab_xtab.

output

A character vector. Allowed values are: "data.table" (default), "data.frame" or "kable". The function's return value is of the respective type.

threeparttable

Boolean value indicating if a threeparttable scheme should be used.

...

Further arguments to be passed to kableExtra::kbl.

Value

The table is returned as an R object of the type specified with the output argument.

Examples

if (requireNamespace("sjPlot", quietly = TRUE)) {
  set.seed(1)
  dataset <- data.table::data.table(
    "var1" = sample(
      x = c("yes", "no"),
      size = 100,
      replace = TRUE,
      prob = c(.3, .7)
    ),
    "var2" = sample(
      x = c("yes", "no"),
      size = 100,
      replace = TRUE
    )
  )

  xtab <- sjPlot::tab_xtab(
    var.row = dataset$var1,
    var.col = dataset$var2,
    show.summary = TRUE,
    use.viewer = FALSE
  )

  sjtable2df::xtab2df(xtab = xtab)
}