In research, especially in medical research, we describe characteristics of our study populations through Table 1. The Table 1 contain information about the mean for continue/scale variable, and proportion for categorical variable. For example: we say that the mean of systolic blood pressure in our study population is 145 mmHg, or 30% of participants are smokers. Since is called Table 1, means that is the first table in the manuscript.
To create the Table 1 sometimes it can be very time consuming. Imagine if we have 10 variables (e.g. age, gender.. etc) for 3 groups, and for each variable we compute mean (standard deviation) and number of participants (proportion); in the end we have to fill 60 numbers in the table. Moreover, we usually export the table from R to Microsoft Word, and we can be prone to making mistakes if we’re copy/pasting. Therefore, I did a search to find a simple and comprehensive way to make Table 1 with R. I found two very interesting packages named “Tableone” and “ReporteRs”. The TableOne package is created by Kazuki Yoshida and Justin Bohn and is used to create the Table 1 in R. The ReporteRs package is created by David Gohel and in this post I use for exporting Table from R to Microsoft Word.
I simulated a dataset by using functions
sample(). You can download this simulated data set on you desktop to replicate this post. To learn how to upload your dataset into R read this post.
dt <- read.csv(file.choose(), header=TRUE, sep=",")
#Load package library(tableone) #Create a variable list which we want in Table 1 listVars <- c("Age", "Gender", "Cholesterol", "SystolicBP", "BMI", "Smoking", "Education") #Define categorical variables catVars <- c("Gender","Smoking","Education")
table1 <- CreateTableOne(vars = listVars, data = dt, factorVars = catVars)
# Removing Gender from list of variables
listVar <- c("Age", "Cholesterol", "SystolicBP", "BMI", "Smoking", "Education")
table1 <- CreateTableOne(listVars, dt, catVars, strata = c("Gender"))