test.t | R Documentation |
This function performs one-sample, two-sample, and paired-sample t-tests and provides descriptive statistics, effect size measure, and a plot showing error bars for (difference-adjusted) confidence intervals with jittered data points.
test.t(x, ...)
## Default S3 method:
test.t(x, y = NULL, mu = 0, paired = FALSE,
alternative = c("two.sided", "less", "greater"),
conf.level = 0.95, hypo = TRUE, descript = TRUE, effsize = FALSE,
weighted = FALSE, cor = TRUE, ref = NULL, correct = FALSE,
plot = FALSE, point.size = 4, adjust = TRUE, error.width = 0.1,
xlab = NULL, ylab = NULL, ylim = NULL, breaks = ggplot2::waiver(),
line = TRUE, line.type = 3, line.size = 0.8,
jitter = TRUE, jitter.size = 1.25, jitter.width = 0.05,
jitter.height = 0, jitter.alpha = 0.1, title = "",
subtitle = "Confidence Interval", digits = 2, p.digits = 4,
as.na = NULL, write = NULL, append = TRUE,check = TRUE, output = TRUE, ...)
## S3 method for class 'formula'
test.t(formula, data, alternative = c("two.sided", "less", "greater"),
conf.level = 0.95, hypo = TRUE, descript = TRUE, effsize = FALSE,
weighted = FALSE, cor = TRUE, ref = NULL, correct = FALSE,
plot = FALSE, point.size = 4, adjust = TRUE, error.width = 0.1,
xlab = NULL, ylab = NULL, ylim = NULL, breaks = ggplot2::waiver(),
jitter = TRUE, jitter.size = 1.25, jitter.width = 0.05,
jitter.height = 0, jitter.alpha = 0.1, title = "",
subtitle = "Confidence Interval", digits = 2, p.digits = 4,
as.na = NULL, write = NULL, append = TRUE, check = TRUE, output = TRUE, ...)
x |
a numeric vector of data values. |
... |
further arguments to be passed to or from methods. |
y |
a numeric vector of data values. |
mu |
a numeric value indicating the population mean under the
null hypothesis. Note that the argument |
paired |
logical: if |
alternative |
a character string specifying the alternative hypothesis,
must be one of |
hypo |
logical: if |
descript |
logical: if |
effsize |
logical: if |
weighted |
logical: if |
cor |
logical: if |
ref |
character string |
correct |
logical: if |
conf.level |
a numeric value between 0 and 1 indicating the confidence level of the interval. |
plot |
logical: if |
point.size |
a numeric value indicating the |
adjust |
logical: if |
error.width |
a numeric value indicating the horizontal bar width of the error bar. |
xlab |
a character string specifying the labels for the x-axis. |
ylab |
a character string specifying the labels for the y-axis. |
ylim |
a numeric vector of length two specifying limits of the limits of the y-axis. |
breaks |
a numeric vector specifying the points at which tick-marks are drawn at the y-axis. |
line |
logical: if |
line.type |
an integer value or character string specifying the line type for the line representing the population mean under the null hypothesis, i.e., 0 = blank, 1 = solid, 2 = dashed, 3 = dotted, 4 = dotdash, 5 = longdash, 6 = twodash. |
line.size |
a numeric value indicating the |
jitter |
logical: if |
jitter.size |
a numeric value indicating the |
jitter.width |
a numeric value indicating the amount of horizontal jitter. |
jitter.height |
a numeric value indicating the amount of vertical jitter. |
jitter.alpha |
a numeric value indicating the opacity of the jittered data points. |
title |
a character string specifying the text for the title for the plot. |
subtitle |
a character string specifying the text for the subtitle for the plot. |
digits |
an integer value indicating the number of decimal places to be used for displaying descriptive statistics and confidence interval. |
p.digits |
an integer value indicating the number of decimal places to be used for displaying the p-value. |
as.na |
a numeric vector indicating user-defined missing values,
i.e. these values are converted to |
write |
a character string naming a text file with file extension
|
append |
logical: if |
check |
logical: if |
output |
logical: if |
formula |
in case of two sample t-test (i.e., |
data |
a matrix or data frame containing the variables in the
formula |
By default, Cohen's d based on the non-weighted
standard deviation (i.e., weighted = FALSE
) which does not assume homogeneity
of variance is computed (see Delacre et al., 2021) when requesting an effect size
measure (i.e., effsize = TRUE
). Cohen's d based on the pooled standard
deviation assuming equality of variances between groups can be requested by
specifying weighted = TRUE
.
Returns an object of class misty.object
, which is a list with following
entries:
call |
function call |
type |
type of analysis |
sample |
type of sample, i.e., one-, two-, or paired sample |
formula |
formula of the current analysis |
data |
data frame specified in |
plot |
ggplot2 object for plotting the results |
args |
specification of function arguments |
result |
result table |
Takuya Yanagida takuya.yanagida@univie.ac.at
Rasch, D., Kubinger, K. D., & Yanagida, T. (2011). Statistics in psychology - Using R and SPSS. John Wiley & Sons.
Delacre, M., Lakens, D., Ley, C., Liu, L., & Leys, C. (2021). Why Hedges' g*s based on the non-pooled standard deviation should be reported with Welch's t-test. https://doi.org/10.31234/osf.io/tu6mp
aov.b
, aov.w
, test.welch
, test.z
,
test.levene
, cohens.d
, ci.mean.diff
,
ci.mean
dat1 <- data.frame(group = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2),
x = c(3, 1, 4, 2, 5, 3, 2, 3, 6, 6, 3, NA))
#-------------------------------------------------------------------------------
# One-Sample Design
# Example 1a: Two-sided one-sample t-test
# population mean = 3
test.t(dat1$x, mu = 3)
# Example 1b: One-sided one-sample t-test
# population mean = 3, population standard deviation = 1.2
test.t(dat1$x, mu = 3, alternative = "greater")
# Example 1c: Two-sided one-sample t-test
# population mean = 3, convert value 3 to NA
test.t(dat1$x, mu = 3, as.na = 3)
# Example 1d: Two-sided one-sample t-test
# population mean = 3, print Cohen's d
test.t(dat1$x, sigma = 1.2, mu = 3, effsize = TRUE)
# Example 1e: Two-sided one-sample t-test
# population mean = 3, print Cohen's d with small sample correction factor
test.t(dat1$x, sigma = 1.2, mu = 3, effsize = TRUE, correct = TRUE)
# Example 1f: Two-sided one-sample t-test
# population mean = 3,
# do not print hypotheses and descriptive statistics
test.t(dat1$x, sigma = 1.2, mu = 3, hypo = FALSE, descript = FALSE)
# Example 1g: Two-sided one-sample t-test
# print descriptive statistics with 3 digits and p-value with 5 digits
test.t(dat1$x, mu = 3, digits = 3, p.digits = 5)
## Not run:
# Example 1h: Two-sided one-sample t-test
# population mean = 3, plot results
test.t(dat1$x, mu = 3, plot = TRUE)
# Load ggplot2 package
library(ggplot2)
# Save plot, ggsave() from the ggplot2 package
ggsave("One-sample_t-test.png", dpi = 600, width = 3, height = 6)
# Example 1i: Two-sided one-sample t-test
# population mean = 3, extract plot
p <- test.t(dat1$x, mu = 3, output = FALSE)$plot
p
# Extract data
plotdat <- data.frame(x = test.t(dat1$x, mu = 3, output = FALSE)$data[[1]])
# Draw plot in line with the default setting of test.t()
ggplot(plotdat, aes(0, x)) +
geom_point(stat = "summary", fun = "mean", size = 4) +
stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", width = 0.20) +
scale_x_continuous(name = NULL, limits = c(-2, 2)) +
scale_y_continuous(name = NULL) +
geom_hline(yintercept = 3, linetype = 3, linewidth = 0.8) +
labs(subtitle = "Two-Sided 95
theme_bw() + theme(plot.subtitle = element_text(hjust = 0.5),
axis.text.x = element_blank(),
axis.ticks.x = element_blank())
## End(Not run)
#-------------------------------------------------------------------------------
# Two-Sample Design
# Example 2a: Two-sided two-sample t-test
test.t(x ~ group, data = dat1)
# Example 2b: One-sided two-sample t-test
test.t(x ~ group, data = dat1, alternative = "greater")
# Example 2c: Two-sided two-sample t-test
# print Cohen's d with weighted pooled SD
test.t(x ~ group, data = dat1, effsize = TRUE)
# Example 2d: Two-sided two-sample t-test
# print Cohen's d with unweighted pooled SD
test.t(x ~ group, data = dat1, effsize = TRUE, weighted = FALSE)
# Example 2e: Two-sided two-sample t-test
# print Cohen's d with weighted pooled SD and
# small sample correction factor
test.t(x ~ group, data = dat1, effsize = TRUE, correct = TRUE)
# Example 2f: Two-sided two-sample t-test
# print Cohen's d with SD of the reference group 1
test.t(x ~ group, data = dat1, effsize = TRUE,
ref = 1)
# Example 2f: Two-sided two-sample t-test
# print Cohen's d with weighted pooled SD and
# small sample correction factor
test.t(x ~ group, data = dat1, effsize = TRUE,
correct = TRUE)
# Example 2h: Two-sided two-sample t-test
# do not print hypotheses and descriptive statistics,
test.t(x ~ group, data = dat1, descript = FALSE, hypo = FALSE)
# Example 2i: Two-sided two-sample t-test
# print descriptive statistics with 3 digits and p-value with 5 digits
test.t(x ~ group, data = dat1, digits = 3, p.digits = 5)
## Not run:
# Example 2j: Two-sided two-sample t-test
# Plot results
test.t(x ~ group, data = dat1, plot = TRUE)
# Load ggplot2 package
library(ggplot2)
# Save plot, ggsave() from the ggplot2 package
ggsave("Two-sample_t-test.png", dpi = 600, width = 4, height = 6)
# Example 2k: Two-sided two-sample t-test
# extract plot
p <- test.t(x ~ group, data = dat1, output = FALSE)$plot
p
# Extract data used to plot results
plotdat <- test.t(x ~ group, data = dat1, output = FALSE)$data
# Draw plot in line with the default setting of test.t()
ggplot(plotdat, aes(factor(group), x)) +
geom_point(stat = "summary", fun = "mean", size = 4) +
stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", width = 0.20) +
scale_x_discrete(name = NULL) + scale_y_continuous(name = "y") +
labs(title = "", subtitle = "Two-Sided 95
theme_bw() + theme(plot.subtitle = element_text(hjust = 0.5))
## End(Not run)
#-----------------
group1 <- c(3, 1, 4, 2, 5, 3, 6, 7)
group2 <- c(5, 2, 4, 3, 1)
# Example 2l: Two-sided two-sample t-test
test.t(group1, group2)
#-------------------------------------------------------------------------------
# Paired-Sample Design
dat2 <- data.frame(pre = c(1, 3, 2, 5, 7),
post = c(2, 2, 1, 6, 8))
# Example 3a: Two-sided paired-sample t-test
test.t(dat2$pre, dat2$post, paired = TRUE)
# Example 3b: One-sided paired-sample t-test
test.t(dat2$pre, dat2$post, paired = TRUE,
alternative = "greater")
# Example 3c: Two-sided paired-sample t-test
# convert value 1 to NA
test.t(dat2$pre, dat2$post, as.na = 1, paired = TRUE)
# Example 3d: Two-sided paired-sample t-test
# print Cohen's d based on the standard deviation of the difference scores
test.t(dat2$pre, dat2$post, paired = TRUE, effsize = TRUE)
# Example 3e: Two-sided paired-sample t-test
# print Cohen's d based on the standard deviation of the difference scores
# with small sample correction factor
test.t(dat2$pre, dat2$post, paired = TRUE, effsize = TRUE,
correct = TRUE)
# Example 3f: Two-sided paired-sample t-test
# print Cohen's d controlling for the correlation between measures
test.t(dat2$pre, dat2$post, paired = TRUE, effsize = TRUE,
weighted = FALSE)
# Example 3g: Two-sided paired-sample t-test
# print Cohen's d controlling for the correlation between measures
# with small sample correction factor
test.t(dat2$pre, dat2$post, paired = TRUE, effsize = TRUE,
weighted = FALSE, correct = TRUE)
# Example 3h: Two-sided paired-sample t-test
# print Cohen's d ignoring the correlation between measures
test.t(dat2$pre, dat2$post, paired = TRUE, effsize = TRUE,
weighted = FALSE, cor = FALSE)
# Example 3i: Two-sided paired-sample t-test
# do not print hypotheses and descriptive statistics
test.t(dat2$pre, dat2$post, paired = TRUE, hypo = FALSE, descript = FALSE)
# Example 3j: Two-sided paired-sample t-test
# population standard deviation of difference score = 1.2
# print descriptive statistics with 3 digits and p-value with 5 digits
test.t(dat2$pre, dat2$post, paired = TRUE, digits = 3,
p.digits = 5)
## Not run:
# Example 3k: Two-sided paired-sample t-test
# Plot results
test.t(dat2$pre, dat2$post, paired = TRUE, plot = TRUE)
# Load ggplot2 package
library(ggplot2)
# Save plot, ggsave() from the ggplot2 package
ggsave("Paired-sample_t-test.png", dpi = 600, width = 3, height = 6)
# Example 3l: Two-sided paired-sample t-test
# Extract plot
p <- test.t(dat2$pre, dat2$post, paired = TRUE, output = FALSE)$plot
p
# Extract data used to plot results
plotdat <- data.frame(test.t(dat2$pre, dat2$post, paired = TRUE, output = FALSE)$data)
# Difference score
plotdat$diff <- plotdat$y - plotdat$x
# Draw plot in line with the default setting of test.t()
ggplot(plotdat, aes(0, diff)) +
geom_point(stat = "summary", fun = "mean", size = 4) +
stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", width = 0.20) +
scale_x_discrete(name = NULL) + scale_y_continuous(name = NULL) +
geom_hline(yintercept = 0, linetype = 3, linewidth = 0.8) +
labs(subtitle = "Two-Sided 95
theme_bw() + theme(plot.subtitle = element_text(hjust = 0.5),
axis.text.x = element_blank(),
axis.ticks.x = element_blank())
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.