crosstable

Easy and thorough description of datasets

https://github.com/danchaltiel/crosstable

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (19.1%) to scientific vocabulary

Keywords

descriptive-statistics flextable frequency-table html-report msword officer r rstats

Keywords from Contributors

interpretability ropensci standardization literate-programming pandoc hack
Last synced: 6 months ago · JSON representation

Repository

Easy and thorough description of datasets

Basic Info
Statistics
  • Stars: 116
  • Watchers: 3
  • Forks: 8
  • Open Issues: 12
  • Releases: 17
Topics
descriptive-statistics flextable frequency-table html-report msword officer r rstats
Created almost 6 years ago · Last pushed about 1 year ago
Metadata Files
Readme Changelog Codemeta

README.Rmd

---
output: 
  github_document:
    html_preview: false
---



```{r setup, include=FALSE}
library(knitr)
knitr::opts_chunk$set(
  collapse=TRUE,
  comment="#>",
  fig.path="man/figures/README-",
  fig.height = 7,
  out.width="100%"
)
library(crosstable)
crosstable_options(
  crosstable_fontsize_body = 8,
  crosstable_padding_v = 0
)
# options(Encoding="UTF-8")
# library(officer)
# library(flextable)
```


# crosstable 


[![Package-License](http://img.shields.io/badge/license-GPL--3-brightgreen.svg?style=flat)](http://www.gnu.org/licenses/gpl-3.0.html) 
[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-blue.svg)](https://lifecycle.r-lib.org/articles/stages.html)
[![CRAN status](https://www.r-pkg.org/badges/version/crosstable)](https://CRAN.R-project.org/package=crosstable)
[![CRAN RStudio mirror downloads](https://cranlogs.r-pkg.org/badges/grand-total/crosstable?color=blue)](https://r-pkg.org/pkg/crosstable)
[![Last Commit](https://img.shields.io/github/last-commit/DanChaltiel/crosstable)](https://github.com/DanChaltiel/crosstable)
[![Codecov test coverage](https://codecov.io/gh/DanChaltiel/crosstable/branch/main/graph/badge.svg)](https://app.codecov.io/gh/DanChaltiel/crosstable?branch=main)
[![R-CMD-check](https://github.com/DanChaltiel/crosstable/actions/workflows/check-standard.yaml/badge.svg?branch=main)](https://github.com/DanChaltiel/crosstable/actions/workflows/check-standard.yaml)
[![minimal R version](https://img.shields.io/badge/R-%E2%89%A53.1-blue.svg)](https://cran.r-project.org/)






Crosstable is a package centered on a single function, `crosstable`, which easily computes descriptive statistics on datasets. It can use the `tidyverse` syntax and is interfaced with the package `officer` to create automatized reports.

## Installation

```{r run-numeric-md, include=FALSE}
last_cran = pkgsearch::cran_package("crosstable")$Version
# last_tag = dplyr::last(names(git2r::tags()))
last_tag = purrr::map_dbl(git2r::tags(), ~{
  if(is.null(.x$tagger)) return(NA)
  as.POSIXct(.x$tagger$when)
}) %>% sort() %>% names() %>% dplyr::last()
git_head = git2r::revparse_single(git2r::repository(),"HEAD") #sapply(git_head, print)
last_commit = substr(git_head$sha, 1,7)
out = c(
  "```{r install, eval=FALSE}",
  '# Install last version available on CRAN',
  'install.packages("crosstable")',
  '', 
  '# Install development version on Github',
  'devtools::install_github("DanChaltiel/crosstable", build_vignettes=TRUE)',
  '', 
  '# Install specific commit or tagged version (for reproducibility purpose)',
  knit_expand(text='devtools::install_github("DanChaltiel/crosstable@{{last_commit}}", build_vignettes=TRUE)'),
  knit_expand(text='devtools::install_github("DanChaltiel/crosstable@{{last_tag}}", build_vignettes=TRUE)'),
"```"
)
```
`r paste(knit(text = out), collapse = '\n')`

Note that, for reproducibility purpose, an even better solution would be to use [`renv`](https://rstudio.github.io/renv/articles/renv.html).

## Overview

Here are 2 examples to try and show you the main features of `crosstable`. See the [documentation website](https://danchaltiel.github.io/crosstable/) for more.

#### Example #1

> Dear crosstable, using the `mtcars2` dataset, please describe columns `disp` and `vs` depending on the levels of column `am`, with totals in both rows and columns, and with proportions formatted with group size, percent on row and percent on column, with no decimals.

```{r usage1, eval=TRUE, echo=TRUE, results="hide", warning=FALSE, message=FALSE}
library(crosstable)
ct1 = crosstable(mtcars2, c(disp, vs), by=am, total="both", 
                 percent_pattern="{n} ({p_row}/{p_col})", percent_digits=0) %>%
  as_flextable()
ct1
```

```{r, include=FALSE}
flextable::save_as_image(ct1, "man/figures/ct1.png")
```

crosstable1

With only a few arguments, we did select which column to describe (`c(disp, vs)`), define a grouping variable (`by=am`), set the percentage calculation in row/column (`percent_pattern=`), and ask for totals (`total=`). Since `mtcars2` is a dataset with labels, they are displayed instead of the variable name (see [here](https://danchaltiel.github.io/crosstable/articles/crosstable.html#dataset-modified-mtcars) for how to add some). As `crosstable()` is returning a `data.frame`, we use `as_flextable()` to output a beautiful HTML table. This one can even be exported to MS Word with a few more lines of code (see [here](https://danchaltiel.github.io/crosstable/articles/crosstable-report.html) to learn how). #### Example #2 Here is a more advanced example. > Dear crosstable, using the `mtcars2` dataset again, please describe all columns whose name starts with "cy" and those whose name ends with "at", depending on the levels of both columns `am` and `vs`, without considering labels, applying `mean()` and `quantile()` as summary function, with `probs` 25% and 75% defined for this latter function, and with 3 decimals for numeric variables: ```{r usage2, eval=TRUE, echo=TRUE, results="hide", warning=FALSE, message=FALSE} ct2 = crosstable(mtcars2, c(starts_with("cy"), ends_with("at")), by=c(am, vs), label=FALSE, num_digits=3, funs=c(mean, quantile), funs_arg=list(probs=c(.25,.75))) %>% as_flextable(compact=TRUE, header_show_n=1:2) ct2 ``` ```{r, include=FALSE} flextable::save_as_image(ct2, "man/figures/ct2.png") file.remove("man/figures/README-usage1-1.png") file.remove("man/figures/README-usage2-1.png") ```

crosstable2

Here, the variables were selected using `tidyselect` helpers and the summary functions `mean` and `quantile` were specified, along with argument `probs` for the latter. Using `label=FALSE` allowed to see which variables were selected but it is best to keep the labels in the final table. In `as_flextable()`, the `compact=TRUE` option yields a longer output, which may be more suited in some contexts (for instance for publication), and `header_show_n=1:2` adds the group sizes for both rows of the header. ## Documentation You can find the whole documentation on the [dedicated website](https://danchaltiel.github.io/crosstable/): + `vignette("crosstable")` for a first step-by-step guide on how to use `crosstable` ([link](https://danchaltiel.github.io/crosstable/articles/crosstable.html)) + `vignette("crosstable-report")` for more on creating MS Word reports using either `{officer}` or `Rmarkdown` ([link](https://danchaltiel.github.io/crosstable/articles/crosstable-report.html)) + `vignette("pertent_pattern")` for more on how to use `percent_pattern` ([link](https://danchaltiel.github.io/crosstable/articles/crosstable-selection.html)) + `vignette("crosstable-selection")` for more on variable selection ([link](https://danchaltiel.github.io/crosstable/articles/crosstable-selection.html)), although you should better read https://tidyselect.r-lib.org/articles/syntax.html. There are lots of other features you can learn about there, for instance (non-exhaustive list): - description of correlation, dates, and survival data ([link](https://danchaltiel.github.io/crosstable/articles/crosstable.html#miscellaneous-1)) - variable selection with functions, e.g. `is.numeric` ([link](https://danchaltiel.github.io/crosstable/articles/crosstable-selection.html#select-with-predicate-functions)) - formula interface, allowing to describe more mutated columns, e.g. `sqrt(mpg)` or `Surv(time, event)` ([link](https://danchaltiel.github.io/crosstable/articles/crosstable-selection.html#select-with-a-formula)) - automatic computation of statistical tests ([link](https://danchaltiel.github.io/crosstable/articles/crosstable.html#tests)) and of effect sizes ([link](https://danchaltiel.github.io/crosstable/articles/crosstable.html#effects)) - global options to avoid repeating arguments ([link](https://danchaltiel.github.io/crosstable/reference/crosstable_options.html)) ## Getting help and giving feedback If you have a question about how to use `crosstable`, please ask on [StackOverflow](https://stackoverflow.com/) with the tag `crosstable`. You can `@DanChaltiel` in a comment if you are struggling to get answers. Don't forget to add a minimal **repr**oducible **ex**ample to your question, ideally using the [reprex](https://reprex.tidyverse.org/) package. If you miss any feature that you think would belong in `crosstable`, please fill a [Feature Request](https://github.com/DanChaltiel/crosstable/issues/new/choose) issue. If you encounter an unexpected error while using `crosstable`, please fill a [Bug Report](https://github.com/DanChaltiel/crosstable/issues/new/choose) issue. In case of any installation problem, try the solutions proposed in [this article](https://danchaltiel.github.io/crosstable/articles/crosstable-install.html) first. ## Acknowledgement In its earliest development phase, `crosstable` was based on the awesome package [`biostat2`](https://github.com/eusebe/biostat2) written by David Hajage. Thanks David!

Owner

  • Name: Dan Chaltiel
  • Login: DanChaltiel
  • Kind: user
  • Location: France
  • Company: @gustaveroussy

Data analyst (PharmD, PhD) and programming enthusiast. I love to code in R (tidyverse FTW!) but also in Kotlin/Java (Android), Python, PHP, JS, Arduino...

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "crosstable",
  "description": "Create descriptive tables for continuous and categorical variables. Apply summary statistics and counting function, with or without a grouping variable, and create beautiful reports using 'rmarkdown' or 'officer'. You can also compute effect sizes and statistical tests if needed.",
  "name": "crosstable: Crosstables for Descriptive Analyses",
  "relatedLink": [
    "https://danchaltiel.github.io/crosstable/",
    "https://CRAN.R-project.org/package=crosstable"
  ],
  "codeRepository": "https://github.com/DanChaltiel/crosstable/",
  "issueTracker": "https://github.com/DanChaltiel/crosstable/issues/",
  "license": "https://spdx.org/licenses/GPL-3.0",
  "version": "0.8.2",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R version 4.4.1 (2024-06-14 ucrt)",
  "provider": {
    "@id": "https://cran.r-project.org",
    "@type": "Organization",
    "name": "Comprehensive R Archive Network (CRAN)",
    "url": "https://cran.r-project.org"
  },
  "author": [
    {
      "@type": "Person",
      "givenName": "Dan",
      "familyName": "Chaltiel",
      "email": "dan.chaltiel@gmail.com",
      "@id": "https://orcid.org/0000-0003-3488-779X"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Dan",
      "familyName": "Chaltiel",
      "email": "dan.chaltiel@gmail.com",
      "@id": "https://orcid.org/0000-0003-3488-779X"
    }
  ],
  "softwareSuggestions": [
    {
      "@type": "SoftwareApplication",
      "identifier": "callr",
      "name": "callr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=callr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "covr",
      "name": "covr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=covr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "crayon",
      "name": "crayon",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=crayon"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "xml2",
      "name": "xml2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=xml2"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "digest",
      "name": "digest",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=digest"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "gt",
      "name": "gt",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=gt"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "expss",
      "name": "expss",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=expss"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "ggplot2",
      "name": "ggplot2",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=ggplot2"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "gmodels",
      "name": "gmodels",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=gmodels"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "Hmisc",
      "name": "Hmisc",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=Hmisc"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "hms",
      "name": "hms",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=hms"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "jsonlite",
      "name": "jsonlite",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=jsonlite"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "knitr",
      "name": "knitr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=knitr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "lubridate",
      "name": "lubridate",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=lubridate"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "openxlsx",
      "name": "openxlsx",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=openxlsx"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rmarkdown",
      "name": "rmarkdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rmarkdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "sloop",
      "name": "sloop",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=sloop"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "stringi",
      "name": "stringi",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=stringi"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "survival",
      "name": "survival",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=survival"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "systemfonts",
      "name": "systemfonts",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=systemfonts"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "tidyselect",
      "name": "tidyselect",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tidyselect"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "name": "testthat",
      "version": ">= 3.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=testthat"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "withr",
      "name": "withr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=withr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "waldo",
      "name": "waldo",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=waldo"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "R",
      "name": "R",
      "version": ">= 3.6.0"
    },
    "2": {
      "@type": "SoftwareApplication",
      "identifier": "checkmate",
      "name": "checkmate",
      "version": ">= 1.9.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=checkmate"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "cli",
      "name": "cli",
      "version": ">= 3.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=cli"
    },
    "4": {
      "@type": "SoftwareApplication",
      "identifier": "dplyr",
      "name": "dplyr",
      "version": ">= 1.1.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=dplyr"
    },
    "5": {
      "@type": "SoftwareApplication",
      "identifier": "flextable",
      "name": "flextable",
      "version": ">= 0.5.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=flextable"
    },
    "6": {
      "@type": "SoftwareApplication",
      "identifier": "forcats",
      "name": "forcats",
      "version": ">= 1.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=forcats"
    },
    "7": {
      "@type": "SoftwareApplication",
      "identifier": "glue",
      "name": "glue",
      "version": ">= 1.3.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=glue"
    },
    "8": {
      "@type": "SoftwareApplication",
      "identifier": "lifecycle",
      "name": "lifecycle",
      "version": ">= 0.2.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=lifecycle"
    },
    "9": {
      "@type": "SoftwareApplication",
      "identifier": "officer",
      "name": "officer",
      "version": ">= 0.4.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=officer"
    },
    "10": {
      "@type": "SoftwareApplication",
      "identifier": "purrr",
      "name": "purrr",
      "version": ">= 0.2.3",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=purrr"
    },
    "11": {
      "@type": "SoftwareApplication",
      "identifier": "rlang",
      "name": "rlang",
      "version": ">= 1.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rlang"
    },
    "12": {
      "@type": "SoftwareApplication",
      "identifier": "stats",
      "name": "stats"
    },
    "13": {
      "@type": "SoftwareApplication",
      "identifier": "stringr",
      "name": "stringr",
      "version": ">= 1.4.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=stringr"
    },
    "14": {
      "@type": "SoftwareApplication",
      "identifier": "tibble",
      "name": "tibble",
      "version": ">= 1.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tibble"
    },
    "15": {
      "@type": "SoftwareApplication",
      "identifier": "tidyr",
      "name": "tidyr",
      "version": ">= 1.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tidyr"
    },
    "16": {
      "@type": "SoftwareApplication",
      "identifier": "utils",
      "name": "utils"
    },
    "SystemRequirements": null
  },
  "fileSize": "1612.194KB",
  "releaseNotes": "https://github.com/DanChaltiel/crosstable/blob/master/NEWS.md",
  "readme": "https://github.com/DanChaltiel/crosstable/blob/main/README.md",
  "contIntegration": [
    "https://app.codecov.io/gh/DanChaltiel/crosstable?branch=main",
    "https://github.com/DanChaltiel/crosstable/actions/workflows/check-standard.yaml"
  ],
  "developmentStatus": "https://lifecycle.r-lib.org/articles/stages.html",
  "keywords": [
    "r",
    "descriptive-statistics",
    "rstats",
    "html-report",
    "frequency-table",
    "msword",
    "flextable",
    "officer"
  ]
}

GitHub Events

Total
  • Issues event: 15
  • Watch event: 6
  • Issue comment event: 2
  • Push event: 14
  • Create event: 6
Last Year
  • Issues event: 15
  • Watch event: 6
  • Issue comment event: 2
  • Push event: 14
  • Create event: 6

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,060
  • Total Committers: 7
  • Avg Commits per committer: 151.429
  • Development Distribution Score (DDS): 0.133
Past Year
  • Commits: 115
  • Committers: 2
  • Avg Commits per committer: 57.5
  • Development Distribution Score (DDS): 0.217
Top Committers
Name Email Commits
Dan Chaltiel d****l@g****m 919
github-actions 4****] 96
David Hajage d****e@g****m 36
David Hajage d****d@l****n 4
Hadley Wickham h****m@g****m 3
Jim Hester j****r@g****m 1
DavisVaughan d****s@r****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 84
  • Total pull requests: 8
  • Average time to close issues: 2 months
  • Average time to close pull requests: 15 days
  • Total issue authors: 20
  • Total pull request authors: 5
  • Average comments per issue: 1.21
  • Average comments per pull request: 1.5
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 17
  • Pull requests: 0
  • Average time to close issues: 2 months
  • Average time to close pull requests: N/A
  • Issue authors: 3
  • Pull request authors: 0
  • Average comments per issue: 0.29
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • DanChaltiel (59)
  • sda030 (8)
  • davidgohel (3)
  • philipmgrant (2)
  • lionel- (1)
  • DanChartrand (1)
  • TonisOrmisson (1)
  • linem7 (1)
  • bberger94 (1)
  • linusgun (1)
  • kathrynagnas (1)
  • Lpierott (1)
  • tokofran (1)
  • hadley (1)
  • technocrat (1)
Pull Request Authors
  • hadley (3)
  • DanChaltiel (2)
  • jimhester (1)
  • DavisVaughan (1)
  • lionel- (1)
Top Labels
Issue Labels
bug (43) enhancement (28) bug 🐞 (6) enhancement ✨ (6) questionning (2) installation (1) test (1) questionning ❓ (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 5,146 last-month
  • Total docker downloads: 55
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 13
  • Total maintainers: 1
cran.r-project.org: crosstable

Crosstables for Descriptive Analyses

  • Versions: 13
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 5,146 Last month
  • Docker Downloads: 55
Rankings
Stargazers count: 3.7%
Forks count: 7.3%
Downloads: 8.4%
Average: 12.3%
Dependent packages count: 18.2%
Dependent repos count: 24.0%
Maintainers (1)
Last synced: about 1 year ago

Dependencies

DESCRIPTION cran
  • R >= 3.1.0 depends
  • checkmate * imports
  • cli * imports
  • dplyr >= 1.0.0 imports
  • flextable >= 0.5.8 imports
  • forcats * imports
  • glue * imports
  • lifecycle * imports
  • officer >= 0.4 imports
  • purrr * imports
  • rlang >= 0.4.7 imports
  • stats * imports
  • stringr * imports
  • tibble * imports
  • tidyr * imports
  • tidyselect * imports
  • Hmisc * suggests
  • callr * suggests
  • covr * suggests
  • crayon * suggests
  • digest * suggests
  • expss * suggests
  • ggplot2 * suggests
  • gmodels * suggests
  • gt * suggests
  • jsonlite * suggests
  • knitr * suggests
  • openxlsx * suggests
  • rmarkdown * suggests
  • sloop * suggests
  • stringi * suggests
  • survival * suggests
  • systemfonts * suggests
  • testthat >= 3.0.0 suggests
  • waldo * suggests
  • withr * suggests
  • xml2 * suggests
.github/workflows/bump_version_dev.yaml actions
  • EndBug/add-and-commit v7.5.0 composite
  • actions/checkout v2 composite
  • r-lib/actions/setup-r v2 composite
.github/workflows/check-standard.yaml actions
  • actions/checkout v3 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/pkgdown.yaml actions
  • JamesIves/github-pages-deploy-action v4.4.1 composite
  • actions/checkout v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/test-coverage.yaml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite