# NOT RUN {
options(scipen = 8)
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
# Change tests for all the types
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)),
TEST = list(
num = list(fun = function(x, g){summary(aov(x ~ g))[[1]][1, "Pr(>F)"]},
lbl = "ANOVA"),
cat = list(fun = function(x, g){chisq.test(table(x, g))$p.val},
lbl = "Chi-Square test"),
dich = list(fun = function(x, g){fisher.test(table(x, g))$p.val},
lbl = "Fisher exact test")),
fmt = list(abs = Fmt("abs"), num = Fmt("num"), per = Fmt("per"),
pval = as.fmt(fmt = "*", na.form = " "))
)
# 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)
)
# }
Run the code above in your browser using DataLab