Skip to content
Switch branches/tags


Failed to load latest commit information.
Latest commit message
Commit time


R-CMD-check CRAN RStudio mirror downloads

An R package to create “Table 1”, description of baseline characteristics

Creates “Table 1”, i.e., description of baseline patient characteristics, which is essential in every medical research. Supports both continuous and categorical variables, as well as p-values and standardized mean differences. Weighted data are supported via the survey package.

tableone was inspired by descriptive statistics functions in Deducer , a Java-based GUI package by Ian Fellows. This package does not require GUI or Java, and intended for command-line users.

tableone in action


The code being executed can be found in the introduction vignette.

tableone code example

In this table, continuous and categorical variables can be placed in any order. The p-valeus are from exact tests for pre-specified variables. For nonnormal variables, it shows median and IQR instead of mean and SD, and p-values are from nonparametric tests. Numerically coded categorical variables can be transformed on the fly with factorVars. SMD stands for standardized mean differences. For weighted data, first created a svydesign object, and use the svyCreateTableOne() function. Most other options remain the same.

## Load package

## Error in library(tableone): there is no package called 'tableone'

## Load data
data(pbc, package = "survival")
# drop ID from variable list
vars <- names(pbc)[-1]
## Create Table 1 stratified by trt (can add more stratifying variables)
tableOne <- CreateTableOne(vars = vars, strata = c("trt"), data = pbc,
                            factorVars = c("status","edema","stage"))

## Error in CreateTableOne(vars = vars, strata = c("trt"), data = pbc, factorVars = c("status", : could not find function "CreateTableOne"

## Specifying nonnormal variables will show the variables appropriately,
## and show nonparametric test p-values. Specify variables in the exact
## argument to obtain the exact test p-values.
print(tableOne, nonnormal = c("bili","chol","copper","alk.phos","trig"),
      exact = c("status","stage"), smd = TRUE,
      formatOptions = list(big.mark = ","))

## Error in print(tableOne, nonnormal = c("bili", "chol", "copper", "alk.phos", : object 'tableOne' not found


This version of tableone package for R is developmetal, and may not be available from the CRAN. You can install it using one of the following way.

Direct installation from github

You first need to install the devtools package to do the following. You can choose from the latest stable version and the latest development version.

## Install devtools (if you do not have it already)
## Install directly from github (develop branch)
devtools::install_github(repo = "kaz-yos/tableone", ref = "develop")

Using devtools may requires some preparation, please see the following link for information.


I would like to thank all the contributors!

Similar or complementary projects

There are multiple similar or complementary projects of interest.