########################################################
#### article_ttest.R
#### Written by Marian Sauter, 2018
#### Documentation: http://github.com/mariansauter/sauter/
########################################################
#' Article-output for a t.test (Simple)
#'
#' Produces article-ready APA output for an t.test-object, including test statistic, p-value and confidence intervals
#' @param obj the output object of an t.test function (stats package)
#' @param unit the measurement unit, defaults to 'ms'
#' @param roundTo round measurement unit to X fractional
#' @keywords t.test APA article
#' @export
#' @examples
#' @return string vector giving the formatted article text
#' article.ttest()
article.ttest <- function(obj=NULL, unit="ms", roundTo=0) {
estimatex <- unname(obj$estimate[1]) # Get Mean_1
estimatex <- round(estimatex, digits=roundTo) # Round Mean_1
estimatey <- NULL # Set Mean_2 to NULL
if(!is.na(obj$estimate[2])) estimatey <- unname(obj$estimate[2]) # If exists, get Mean_2
if(!is.null(estimatey)) estimatey <- round(estimatey, digits=roundTo) # If exists, round Mean_2
df <- round(unname(obj$parameter),digits=2) # Get and round Cohen's d value
statistic <- round(unname(obj$statistic),digits=2) # Get and round T value
p <- round(unname(obj$p.value),digits=3) # Get and round p value
if(p < 0.001) p <- "p < .001"
else p <- paste("p = ",substring(toString(p), 2),sep="")
ci1 <- round(as.numeric(obj$conf.int[1]),roundTo)
ci2 <- round(as.numeric(obj$conf.int[2]),roundTo)
if(is.null(estimatey)) est_string = paste("M = ", estimatex," ",unit, sep="")
else est_string = paste(estimatex," ",unit," vs. ",estimatey," ",unit, sep="")
string <- paste(
est_string,
"; t(",df,") = ",statistic,
", ",p,
", 95% CI [",ci1, " ",unit, ", ",ci2," ",unit,"]",
sep="")
return(string)
}
#' Comprehensive Article-output for a t.test
#'
#' Produces article-ready APA output for an t.test-object, including test statistic, p-value, Cohen's D, BayesFactor and Highest Posterior Density Interval
#' @param obj the output object of an t.test function (stats package)
#' @param dz output from cohensD() function (CohensD package)
#' @param BF output from ttestBF()-function (BayesFactor package)
#' @param unit the measurement unit, defaults to 'ms'
#' @param roundTo round measurement unit to X fractional digits
#' @keywords t.test APA article
#' @export
#' @examples
#' @return string vector giving the formatted article text
#' article.ttest_full()
article.ttest_full <- function(obj=NULL, d=NULL, BF=NULL, unit="ms", roundTo=0) {
library(coda)
library(BayesFactor)
estimatex <- unname(obj$estimate[1])
estimatex <- round(estimatex, digits=roundTo)
estimatey <- NULL
if(!is.na(obj$estimate[2])) estimatey <- unname(obj$estimate[2])
if(!is.null(estimatey)) estimatey <- round(estimatey, digits=roundTo)
df <- round(unname(obj$parameter),digits=2)
statistic <- round(unname(obj$statistic),digits=2)
p <- round(unname(obj$p.value),digits=3)
if(p < 0.001) p <- "p < .001"
else p <- paste("p = ",substring(toString(p), 2),sep="")
hpd <- invisible(HPDinterval(posterior(BF, iterations = 10000)))
ci1 <- round(hpd[1,1],roundTo)
ci2 <- round(hpd[1,2],roundTo)
cip <- attr(hpd, "Probability")
if(is.null(estimatey)) est_string = paste("M = ", estimatex," ",unit, sep="")
else est_string = paste(estimatex," ",unit," vs. ",estimatey," ",unit, sep="")
bayes <- signif(extractBF(BF)$bf, 4)
string <- paste(
est_string,
"; t(",df,") = ",statistic,
", ",p,
", dz = ",round(d, digits=2),
", ",cip*100, "% HPD [",ci1, " ",unit, ", ",ci2," ",unit,"]",
", BF10 = ",bayes,
sep="")
return(string)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.