| TOne {DescTools} | R Documentation |
Create a table summarizing continuous, categorical and dichotomous variables, optionally stratified by one or more variables, while performing adequate statistical tests.
TOne(x, grp = NA, add.length = TRUE, colnames = NULL, vnames = NULL, total = TRUE,
align = "\\l", FUN = NULL, NUMTEST = NULL, numtestlab = NULL, intref = "high")
x |
a data.frame containing all the variables to be included in the table. |
grp |
the grouping variable. |
add.length |
logical. If set to |
colnames |
a vector of columnnames for the result table. |
vnames |
a vector of variablenames to be placed in the first column instead of the real names. |
total |
logical, |
align |
the character on whose position the strings will be aligned. Left alignment can be requested by setting |
FUN |
the function to be used as location and dispersion measure (typically |
NUMTEST |
the function to be used to compare location (default |
numtestlab |
string, describing the test for numeric variables. Default is "Kruskal-Wallis test". Alternative could be "ANOVA". |
intref |
one out of |
There are three types of variables currently implemented: numeric, factor and variables with only two levels.
a character matrix
Andri Signorell <andri@signorell.net>
opt <- DescToolsOptions()
# define some special formats for count data, percentages and numeric results
# (those will be supported by TOne)
Fmt(abs=as.fmt(digits=0, big.mark="'"))
Fmt(per=as.fmt(digits=1, fmt="%"))
Fmt(num=as.fmt(digits=1, big.mark="'"))
TOne(x = d.pizza[, c("temperature","delivery_min","driver","wine_ordered")],
grp=d.pizza$quality)
# define median/IQR as describing functions for the numeric variables
TOne(iris[, -5], iris[, 5],
FUN = function(x) gettextf("%s / %s",
Format(median(x, na.rm=TRUE), digits=1),
Format(IQR(x, na.rm=TRUE), digits=3))
)
# replace kruskal.test by ANOVA and report the p.value
TOne(x = iris[, -5], grp = iris[, 5],
FUN = function(x) gettextf("%s / %s",
Format(mean(x, na.rm=TRUE), digits=1),
Format(sd(x, na.rm=TRUE), digits=3)),
NUMTEST = function(x, g)
Format(summary(aov(x ~ g))[[1]][1, "Pr(>F)"], fmt="p"),
numtestlab = "ANOVA"
)
# dichotomous integer or logical values can be reported by the high or low value
x <- sample(x = c(0,1), size = 100, prob = c(0.3, 0.7), replace = TRUE)
y <- sample(x = c(0,1), size = 100, prob = c(0.3, 0.7), replace = TRUE)==1
z <- factor(sample(x = c(0,1), size = 100, prob = c(0.3, 0.7), replace = TRUE))
g <- sample(x = letters[1:4], size = 100, replace = TRUE)
d.set <- data.frame(x=x, y=y, z=z, g=g)
TOne(d.set[1:3], d.set$g, intref = "low")
TOne(d.set[1:3], d.set$g, intref = "high")
# intref would not control factors, use relevel to change reported value
TOne(data.frame(z=relevel(z, "1")), g)
TOne(data.frame(z=z), g)
options(opt)
## Not run: -- Send the whole stuff to Word
wrd <- GetNewWrd()
ToWrd(TOne(x = d.pizza[, c("temperature","delivery_min","driver","wine_ordered")],
grp=d.pizza$quality))
## End(Not run)