Warning to existing users
This version introduces a new API that should make the creation of
tables more flexible.
The old API is still present but in a deprecated mode.
See the roadmap below, and the website for the new usage.
Suggestions about this change are welcome !
Introduction
Desctable aims to be a simple and expressive interface to building statistical tables in R.
Installation
Install from CRAN with
install.packages("desctable")
or install the development version from github with
::install_github("desctable/desctable") devtools
Basic usage
Load the package
Simply apply desc_table
on a dataframe or a grouped
dataframe to get a statistical table
iris %>%
desc_table()
## Variables N % Min Q1 Med Mean Q3 Max
## 1 Sepal.Length 150 NA 4.3 5.1 5.80 5.843333 6.4 7.9
## 2 Sepal.Width 150 NA 2.0 2.8 3.00 3.057333 3.3 4.4
## 3 Petal.Length 150 NA 1.0 1.6 4.35 3.758000 5.1 6.9
## 4 Petal.Width 150 NA 0.1 0.3 1.30 1.199333 1.8 2.5
## 5 **Species** 150 NA NA NA NA NA NA NA
## 6 **Species**: *setosa* 50 33.33333 NA NA NA NA NA NA
## 7 **Species**: *versicolor* 50 33.33333 NA NA NA NA NA NA
## 8 **Species**: *virginica* 50 33.33333 NA NA NA NA NA NA
## sd IQR
## 1 0.8280661 1.3
## 2 0.4358663 0.5
## 3 1.7652982 3.5
## 4 0.7622377 1.5
## 5 NA NA
## 6 NA NA
## 7 NA NA
## 8 NA NA
Declare the statistics you want to see, and give them the name of your choice
iris %>%
desc_table("N" = length,
"%" = percent,
mean,
sd)
## Variables N % mean sd
## 1 Sepal.Length 150 NA 5.843333 0.8280661
## 2 Sepal.Width 150 NA 3.057333 0.4358663
## 3 Petal.Length 150 NA 3.758000 1.7652982
## 4 Petal.Width 150 NA 1.199333 0.7622377
## 5 **Species** 150 NA NA NA
## 6 **Species**: *setosa* 50 33.33333 NA NA
## 7 **Species**: *versicolor* 50 33.33333 NA NA
## 8 **Species**: *virginica* 50 33.33333 NA NA
Create comparative tables, compute statistical tests and output to
pander
for crisp markdown rendering!
mtcars %>%
dplyr::mutate(cyl = factor(cyl),
vs = factor(vs, labels = c("V-shaped", "straight")),
am = factor(am, labels = c("automatic", "manual"))) %>%
group_by(am) %>%
desc_table(N = length,
"%" = percent,
"Median" = median,
IQR) %>%
desc_tests(vs = ~chisq.test) %>%
desc_output("pander")
am = manual (N = 13) N | % | Median | IQR | am = automatic (N = 19) N | % | Median | IQR | p | test | |
---|---|---|---|---|---|---|---|---|---|---|
mpg | 13 | 23 | 9.4 | 19 | 17 | 4.2 | < 0.01 | wilcox.test | ||
cyl | 13 | 19 | < 0.01 | fisher.test | ||||||
4 | 8 | 62 | 3 | 16 | ||||||
6 | 3 | 23 | 4 | 21 | ||||||
8 | 2 | 15 | 12 | 63 | ||||||
disp | 13 | 120 | 81 | 19 | 276 | 164 | < 0.01 | wilcox.test | ||
hp | 13 | 109 | 47 | 19 | 175 | 76 | 0.046 | wilcox.test | ||
drat | 13 | 4.1 | 0.37 | 19 | 3.1 | 0.63 | < 0.01 | wilcox.test | ||
wt | 13 | 2.3 | 0.84 | 19 | 3.5 | 0.41 | < 0.01 | wilcox.test | ||
qsec | 13 | 17 | 2.1 | 19 | 18 | 2 | 0.27 | wilcox.test | ||
vs | 13 | 19 | 0.56 | chisq.test | ||||||
V-shaped | 6 | 46 | 12 | 63 | ||||||
straight | 7 | 54 | 7 | 37 | ||||||
gear | 13 | 4 | 1 | 19 | 3 | 0 | < 0.01 | wilcox.test | ||
carb | 13 | 2 | 3 | 19 | 3 | 2 | 0.74 | wilcox.test |
Read more in the vignette !