Getting started

This function makes it really easy to get all all your t-test results in one simple, publication-ready table.

Let's first load the demo data. This data set comes with base R (meaning you have it too and can directly type this command into your R console).

head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

Load the rempsyc package:

library(rempsyc)

Note: If you haven't installed this package yet, you will need to install it via the following command: devtools::install_github("rempsyc/rempsyc"). Package devtools is necessary for this command. If you haven't installed devtools yet, install it via install.packages("devtools").

nice_t_test(data = mtcars,
            response = "mpg",
            group = "am",
            warning = FALSE)
##   Dependent Variable         t       df           p         d  CI_lower
## 1                mpg -3.767123 18.33225 0.001373638 -1.477947 -2.265973
##     CI_upper
## 1 -0.6705686

Note: This function relies on the base R t.test function, which uses the Welch t-test per default (see why here: https://daniellakens.blogspot.com/2015/01/always-use-welchs-t-test-instead-of.html). To use the Student t-test, simply add the following argument: var.equal = TRUE.

Now the best thing about this function is that you can put all your dependent variables of interest in the function call and it will output a sweet, pre-formatted table for your convenience.

nice_t_test(data = mtcars,
            response = names(mtcars)[1:6],
            group = "am",
            warning = FALSE) -> t.test.results
t.test.results
##   Dependent Variable         t       df            p          d   CI_lower
## 1                mpg -3.767123 18.33225 1.373638e-03 -1.4779471 -2.2659731
## 2                cyl  3.354114 25.85363 2.464713e-03  1.2084550  0.4315896
## 3               disp  4.197727 29.25845 2.300413e-04  1.4452210  0.6417834
## 4                 hp  1.266189 18.71541 2.209796e-01  0.4943081 -0.2260466
## 5               drat -5.646088 27.19780 5.266742e-06 -2.0030843 -2.8592770
## 6                 wt  5.493905 29.23352 6.272020e-06  1.8924060  1.0300224
##     CI_upper
## 1 -0.6705686
## 2  1.9683146
## 3  2.2295592
## 4  1.2066992
## 5 -1.1245498
## 6  2.7329218

If we want it to look nice

my_table <- nice_table(t.test.results)
my_table
<div class="tabwid"><style>.cl-2589ee48{table-layout:auto;}.cl-25753124{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-25753125{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:italic;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-257de242{margin:0;text-align:center;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:5pt;padding-top:5pt;padding-left:5pt;padding-right:5pt;line-height: 2;background-color:transparent;}.cl-257e095c{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0.5pt solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-257e095d{background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-257e095e{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}</style><table class='cl-2589ee48'><thead><tr style="overflow-wrap:break-word;"><td class="cl-257e095c"><p class="cl-257de242"><span class="cl-25753124">Dependent Variable</span></p></td><td class="cl-257e095c"><p class="cl-257de242"><span class="cl-25753125">t</span></p></td><td class="cl-257e095c"><p class="cl-257de242"><span class="cl-25753125">df</span></p></td><td class="cl-257e095c"><p class="cl-257de242"><span class="cl-25753125">p</span></p></td><td class="cl-257e095c"><p class="cl-257de242"><span class="cl-25753125">d</span></p></td><td class="cl-257e095c"><p class="cl-257de242"><span class="cl-25753124">95% CI</span></p></td></tr></thead><tbody><tr style="overflow-wrap:break-word;"><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">mpg</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">-3.77</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">18.33</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">.001</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">-1.48</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">[-2.27, -0.67]</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">cyl</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">3.35</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">25.85</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">.002</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">1.21</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">[0.43, 1.97]</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">disp</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">4.20</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">29.26</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">&lt; .001</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">1.45</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">[0.64, 2.23]</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">hp</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">1.27</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">18.72</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">.221</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">0.49</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">[-0.23, 1.21]</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">drat</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">-5.65</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">27.20</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">&lt; .001</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">-2.00</span></p></td><td class="cl-257e095d"><p class="cl-257de242"><span class="cl-25753124">[-2.86, -1.12]</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-257e095e"><p class="cl-257de242"><span class="cl-25753124">wt</span></p></td><td class="cl-257e095e"><p class="cl-257de242"><span class="cl-25753124">5.49</span></p></td><td class="cl-257e095e"><p class="cl-257de242"><span class="cl-25753124">29.23</span></p></td><td class="cl-257e095e"><p class="cl-257de242"><span class="cl-25753124">&lt; .001</span></p></td><td class="cl-257e095e"><p class="cl-257de242"><span class="cl-25753124">1.89</span></p></td><td class="cl-257e095e"><p class="cl-257de242"><span class="cl-25753124">[1.03, 2.73]</span></p></td></tr></tbody></table></div>

Note: The d is Cohen's d, and the 95% CI is the confidence interval of the effect size (Cohen's d). p is the p-value, df is degrees of freedom, and t is the t-value.

Save table to Word

Let's save it to word for use in a publication (optional).

save_as_docx(my_table, path = "t-tests.docx")

Special cases

The function can be passed some of the regular arguments of the base t.test() function. For example:

Student t-test (instead of Welch)

nice_t_test(data = mtcars,
            response = "mpg",
            group = "am",
            var.equal = TRUE) |> 
  nice_table()
<div class="tabwid"><style>.cl-25c7aa44{table-layout:auto;}.cl-25b5f9a2{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-25b5f9a3{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:italic;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-25bcd6a0{margin:0;text-align:center;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:5pt;padding-top:5pt;padding-left:5pt;padding-right:5pt;line-height: 2;background-color:transparent;}.cl-25bcfdb0{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0.5pt solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-25bcfdb1{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}</style><table class='cl-25c7aa44'><thead><tr style="overflow-wrap:break-word;"><td class="cl-25bcfdb0"><p class="cl-25bcd6a0"><span class="cl-25b5f9a2">Dependent Variable</span></p></td><td class="cl-25bcfdb0"><p class="cl-25bcd6a0"><span class="cl-25b5f9a3">t</span></p></td><td class="cl-25bcfdb0"><p class="cl-25bcd6a0"><span class="cl-25b5f9a3">df</span></p></td><td class="cl-25bcfdb0"><p class="cl-25bcd6a0"><span class="cl-25b5f9a3">p</span></p></td><td class="cl-25bcfdb0"><p class="cl-25bcd6a0"><span class="cl-25b5f9a3">d</span></p></td><td class="cl-25bcfdb0"><p class="cl-25bcd6a0"><span class="cl-25b5f9a2">95% CI</span></p></td></tr></thead><tbody><tr style="overflow-wrap:break-word;"><td class="cl-25bcfdb1"><p class="cl-25bcd6a0"><span class="cl-25b5f9a2">mpg</span></p></td><td class="cl-25bcfdb1"><p class="cl-25bcd6a0"><span class="cl-25b5f9a2">-4.11</span></p></td><td class="cl-25bcfdb1"><p class="cl-25bcd6a0"><span class="cl-25b5f9a2">30</span></p></td><td class="cl-25bcfdb1"><p class="cl-25bcd6a0"><span class="cl-25b5f9a2">&lt; .001</span></p></td><td class="cl-25bcfdb1"><p class="cl-25bcd6a0"><span class="cl-25b5f9a2">-1.48</span></p></td><td class="cl-25bcfdb1"><p class="cl-25bcd6a0"><span class="cl-25b5f9a2">[-2.27, -0.67]</span></p></td></tr></tbody></table></div>

One-sided (instead of two-sided)

nice_t_test(data = mtcars,
            response = "mpg",
            group = "am",
            alternative = "less",
            warning = FALSE) |> 
  nice_table()
<div class="tabwid"><style>.cl-26141208{table-layout:auto;}.cl-25fae8b4{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-25fae8b5{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:italic;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-2602fdb0{margin:0;text-align:center;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:5pt;padding-top:5pt;padding-left:5pt;padding-right:5pt;line-height: 2;background-color:transparent;}.cl-260324b6{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0.5pt solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-260324b7{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}</style><table class='cl-26141208'><thead><tr style="overflow-wrap:break-word;"><td class="cl-260324b6"><p class="cl-2602fdb0"><span class="cl-25fae8b4">Dependent Variable</span></p></td><td class="cl-260324b6"><p class="cl-2602fdb0"><span class="cl-25fae8b5">t</span></p></td><td class="cl-260324b6"><p class="cl-2602fdb0"><span class="cl-25fae8b5">df</span></p></td><td class="cl-260324b6"><p class="cl-2602fdb0"><span class="cl-25fae8b5">p</span></p></td><td class="cl-260324b6"><p class="cl-2602fdb0"><span class="cl-25fae8b5">d</span></p></td><td class="cl-260324b6"><p class="cl-2602fdb0"><span class="cl-25fae8b4">95% CI</span></p></td></tr></thead><tbody><tr style="overflow-wrap:break-word;"><td class="cl-260324b7"><p class="cl-2602fdb0"><span class="cl-25fae8b4">mpg</span></p></td><td class="cl-260324b7"><p class="cl-2602fdb0"><span class="cl-25fae8b4">-3.77</span></p></td><td class="cl-260324b7"><p class="cl-2602fdb0"><span class="cl-25fae8b4">18.33</span></p></td><td class="cl-260324b7"><p class="cl-2602fdb0"><span class="cl-25fae8b4">.001</span></p></td><td class="cl-260324b7"><p class="cl-2602fdb0"><span class="cl-25fae8b4">-1.48</span></p></td><td class="cl-260324b7"><p class="cl-2602fdb0"><span class="cl-25fae8b4">[-2.27, -0.67]</span></p></td></tr></tbody></table></div>

One-sample (instead of two-sample)

nice_t_test(data = mtcars,
            response = "mpg",
            mu = 17,
            warning = FALSE) |> 
  nice_table()
<div class="tabwid"><style>.cl-265c893e{table-layout:auto;}.cl-2647c8b4{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-2647c8b5{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:italic;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-264f689e{margin:0;text-align:center;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:5pt;padding-top:5pt;padding-left:5pt;padding-right:5pt;line-height: 2;background-color:transparent;}.cl-264fb6aa{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0.5pt solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-264fb6ab{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}</style><table class='cl-265c893e'><thead><tr style="overflow-wrap:break-word;"><td class="cl-264fb6aa"><p class="cl-264f689e"><span class="cl-2647c8b4">Dependent Variable</span></p></td><td class="cl-264fb6aa"><p class="cl-264f689e"><span class="cl-2647c8b5">t</span></p></td><td class="cl-264fb6aa"><p class="cl-264f689e"><span class="cl-2647c8b5">df</span></p></td><td class="cl-264fb6aa"><p class="cl-264f689e"><span class="cl-2647c8b5">p</span></p></td><td class="cl-264fb6aa"><p class="cl-264f689e"><span class="cl-2647c8b5">d</span></p></td><td class="cl-264fb6aa"><p class="cl-264f689e"><span class="cl-2647c8b4">95% CI</span></p></td></tr></thead><tbody><tr style="overflow-wrap:break-word;"><td class="cl-264fb6ab"><p class="cl-264f689e"><span class="cl-2647c8b4">mpg</span></p></td><td class="cl-264fb6ab"><p class="cl-264f689e"><span class="cl-2647c8b4">2.90</span></p></td><td class="cl-264fb6ab"><p class="cl-264f689e"><span class="cl-2647c8b4">31</span></p></td><td class="cl-264fb6ab"><p class="cl-264f689e"><span class="cl-2647c8b4">.007</span></p></td><td class="cl-264fb6ab"><p class="cl-264f689e"><span class="cl-2647c8b4">0.51</span></p></td><td class="cl-264fb6ab"><p class="cl-264f689e"><span class="cl-2647c8b4">[0.14, 0.88]</span></p></td></tr></tbody></table></div>

Paired t-test (instead of independent samples)

nice_t_test(data = ToothGrowth,
            response = "len",
            group = "supp",
            paired = TRUE) |> 
  nice_table()
<div class="tabwid"><style>.cl-26943460{table-layout:auto;}.cl-2682f93e{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-2682f93f{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:italic;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-2689609e{margin:0;text-align:center;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:5pt;padding-top:5pt;padding-left:5pt;padding-right:5pt;line-height: 2;background-color:transparent;}.cl-2689609f{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0.5pt solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-268960a0{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}</style><table class='cl-26943460'><thead><tr style="overflow-wrap:break-word;"><td class="cl-2689609f"><p class="cl-2689609e"><span class="cl-2682f93e">Dependent Variable</span></p></td><td class="cl-2689609f"><p class="cl-2689609e"><span class="cl-2682f93f">t</span></p></td><td class="cl-2689609f"><p class="cl-2689609e"><span class="cl-2682f93f">df</span></p></td><td class="cl-2689609f"><p class="cl-2689609e"><span class="cl-2682f93f">p</span></p></td><td class="cl-2689609f"><p class="cl-2689609e"><span class="cl-2682f93f">d</span></p></td><td class="cl-2689609f"><p class="cl-2689609e"><span class="cl-2682f93e">95% CI</span></p></td></tr></thead><tbody><tr style="overflow-wrap:break-word;"><td class="cl-268960a0"><p class="cl-2689609e"><span class="cl-2682f93e">len</span></p></td><td class="cl-268960a0"><p class="cl-2689609e"><span class="cl-2682f93e">3.30</span></p></td><td class="cl-268960a0"><p class="cl-2689609e"><span class="cl-2682f93e">29</span></p></td><td class="cl-268960a0"><p class="cl-2689609e"><span class="cl-2682f93e">.003</span></p></td><td class="cl-268960a0"><p class="cl-2689609e"><span class="cl-2682f93e">0.60</span></p></td><td class="cl-268960a0"><p class="cl-2689609e"><span class="cl-2682f93e">[0.21, 0.99]</span></p></td></tr></tbody></table></div>

Multiple comparison corrections

It is also possible to correct for multiple comparisons. Note that only a Bonferroni correction is supported at this time (which simply multiplies the p-value by the number of tests). Bonferroni will automatically correct for the number of tests.

nice_t_test(data = mtcars,
            response = names(mtcars)[1:6],
            group = "am",
            correction = "bonferroni",
            warning = FALSE) |> 
  nice_table()
<div class="tabwid"><style>.cl-26dc2e78{table-layout:auto;}.cl-26c945a6{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-26c945a7{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:italic;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-26d0be8a{margin:0;text-align:center;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:5pt;padding-top:5pt;padding-left:5pt;padding-right:5pt;line-height: 2;background-color:transparent;}.cl-26d10ca0{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0.5pt solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-26d10ca1{background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-26d10ca2{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}</style><table class='cl-26dc2e78'><thead><tr style="overflow-wrap:break-word;"><td class="cl-26d10ca0"><p class="cl-26d0be8a"><span class="cl-26c945a6">Dependent Variable</span></p></td><td class="cl-26d10ca0"><p class="cl-26d0be8a"><span class="cl-26c945a7">t</span></p></td><td class="cl-26d10ca0"><p class="cl-26d0be8a"><span class="cl-26c945a7">df</span></p></td><td class="cl-26d10ca0"><p class="cl-26d0be8a"><span class="cl-26c945a7">p</span></p></td><td class="cl-26d10ca0"><p class="cl-26d0be8a"><span class="cl-26c945a7">d</span></p></td><td class="cl-26d10ca0"><p class="cl-26d0be8a"><span class="cl-26c945a6">95% CI</span></p></td></tr></thead><tbody><tr style="overflow-wrap:break-word;"><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">mpg</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">-3.77</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">18.33</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">.008</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">-1.48</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">[-2.27, -0.67]</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">cyl</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">3.35</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">25.85</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">.015</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">1.21</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">[0.43, 1.97]</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">disp</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">4.20</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">29.26</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">.001</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">1.45</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">[0.64, 2.23]</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">hp</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">1.27</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">18.72</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">1.326</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">0.49</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">[-0.23, 1.21]</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">drat</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">-5.65</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">27.20</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">&lt; .001</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">-2.00</span></p></td><td class="cl-26d10ca1"><p class="cl-26d0be8a"><span class="cl-26c945a6">[-2.86, -1.12]</span></p></td></tr><tr style="overflow-wrap:break-word;"><td class="cl-26d10ca2"><p class="cl-26d0be8a"><span class="cl-26c945a6">wt</span></p></td><td class="cl-26d10ca2"><p class="cl-26d0be8a"><span class="cl-26c945a6">5.49</span></p></td><td class="cl-26d10ca2"><p class="cl-26d0be8a"><span class="cl-26c945a6">29.23</span></p></td><td class="cl-26d10ca2"><p class="cl-26d0be8a"><span class="cl-26c945a6">&lt; .001</span></p></td><td class="cl-26d10ca2"><p class="cl-26d0be8a"><span class="cl-26c945a6">1.89</span></p></td><td class="cl-26d10ca2"><p class="cl-26d0be8a"><span class="cl-26c945a6">[1.03, 2.73]</span></p></td></tr></tbody></table></div>

Integrations

There are other ways to do t-tests and format the results properly, should you wish—for example through the broom and report packages. Examples below.

model <- t.test(mpg ~ am, data = mtcars)

broom table

library(broom)
(stats.table <- tidy(model, conf.int = TRUE))
## # A tibble: 1 × 10
##   estim…¹ estim…² estim…³ stati…⁴ p.value param…⁵ conf.…⁶ conf.…⁷ method alter…⁸
##     <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl> <chr>  <chr>  
## 1   -7.24    17.1    24.4   -3.77 0.00137    18.3   -11.3   -3.21 Welch… two.si…
## # … with abbreviated variable names ¹​estimate, ²​estimate1, ³​estimate2,
## #   ⁴​statistic, ⁵​parameter, ⁶​conf.low, ⁷​conf.high, ⁸​alternative
nice_table(stats.table, broom = "t.test")
<div class="tabwid"><style>.cl-273935dc{table-layout:auto;}.cl-2726e936{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-2726e937{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:italic;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-2726e938{font-family:'Times New Roman';font-size:7.2pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;position: relative;top:3.6pt;}.cl-272f4c52{margin:0;text-align:center;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:5pt;padding-top:5pt;padding-left:5pt;padding-right:5pt;line-height: 2;background-color:transparent;}.cl-272f7358{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0.5pt solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-272f7359{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}</style><table class='cl-273935dc'><thead><tr style="overflow-wrap:break-word;"><td class="cl-272f7358"><p class="cl-272f4c52"><span class="cl-2726e936">Method</span></p></td><td class="cl-272f7358"><p class="cl-272f4c52"><span class="cl-2726e936">Alternative</span></p></td><td class="cl-272f7358"><p class="cl-272f4c52"><span class="cl-2726e936">Mean 1</span></p></td><td class="cl-272f7358"><p class="cl-272f4c52"><span class="cl-2726e936">Mean 2</span></p></td><td class="cl-272f7358"><p class="cl-272f4c52"><span class="cl-2726e937">M</span><span class="cl-2726e938">1</span><span class="cl-2726e936"> - </span><span class="cl-2726e937">M</span><span class="cl-2726e938">2</span></p></td><td class="cl-272f7358"><p class="cl-272f4c52"><span class="cl-2726e937">t</span></p></td><td class="cl-272f7358"><p class="cl-272f4c52"><span class="cl-2726e937">df</span></p></td><td class="cl-272f7358"><p class="cl-272f4c52"><span class="cl-2726e937">p</span></p></td><td class="cl-272f7358"><p class="cl-272f4c52"><span class="cl-2726e936">95% CI</span></p></td></tr></thead><tbody><tr style="overflow-wrap:break-word;"><td class="cl-272f7359"><p class="cl-272f4c52"><span class="cl-2726e936">Welch Two Sample t-test</span></p></td><td class="cl-272f7359"><p class="cl-272f4c52"><span class="cl-2726e936">two.sided</span></p></td><td class="cl-272f7359"><p class="cl-272f4c52"><span class="cl-2726e936">17.15</span></p></td><td class="cl-272f7359"><p class="cl-272f4c52"><span class="cl-2726e936">24.39</span></p></td><td class="cl-272f7359"><p class="cl-272f4c52"><span class="cl-2726e936">-7.24</span></p></td><td class="cl-272f7359"><p class="cl-272f4c52"><span class="cl-2726e936">-3.77</span></p></td><td class="cl-272f7359"><p class="cl-272f4c52"><span class="cl-2726e936">18.33</span></p></td><td class="cl-272f7359"><p class="cl-272f4c52"><span class="cl-2726e936">.001</span></p></td><td class="cl-272f7359"><p class="cl-272f4c52"><span class="cl-2726e936">[-11.28, -3.21]</span></p></td></tr></tbody></table></div>

report table

library(report)
(stats.table <- as.data.frame(report(model)))
## Welch Two Sample t-test
## 
## Parameter | Group | Mean_Group1 | Mean_Group2 | Difference |          95% CI | t(18.33) |     p |     d |          d  CI
## ------------------------------------------------------------------------------------------------------------------------
## mpg       |    am |       17.15 |       24.39 |      -7.24 | [-11.28, -3.21] |    -3.77 | 0.001 | -1.76 | [-2.82, -0.67]
## 
## Alternative hypothesis: two.sided
nice_table(stats.table, report = "t.test")
<div class="tabwid"><style>.cl-279eb27c{table-layout:auto;}.cl-278ab876{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-278ab877{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:italic;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-27925860{margin:0;text-align:center;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:5pt;padding-top:5pt;padding-left:5pt;padding-right:5pt;line-height: 2;background-color:transparent;}.cl-27927f66{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0.5pt solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-27927f67{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}</style><table class='cl-279eb27c'><thead><tr style="overflow-wrap:break-word;"><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab876">Method</span></p></td><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab876">Alternative</span></p></td><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab876">Parameter</span></p></td><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab876">Group</span></p></td><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab876">Mean_Group1</span></p></td><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab876">Mean_Group2</span></p></td><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab876">Difference</span></p></td><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab877">t</span></p></td><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab876">95% CI (</span><span class="cl-278ab877">t</span><span class="cl-278ab876">)</span></p></td><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab877">df</span></p></td><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab877">p</span></p></td><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab877">d</span></p></td><td class="cl-27927f66"><p class="cl-27925860"><span class="cl-278ab876">95% CI (</span><span class="cl-278ab877">d</span><span class="cl-278ab876">)</span></p></td></tr></thead><tbody><tr style="overflow-wrap:break-word;"><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">Welch Two Sample t-test</span></p></td><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">two.sided</span></p></td><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">mpg</span></p></td><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">am</span></p></td><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">17.15</span></p></td><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">24.39</span></p></td><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">-7.24</span></p></td><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">-3.77</span></p></td><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">[-11.28, -3.21]</span></p></td><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">18.33</span></p></td><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">.001</span></p></td><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">-1.76</span></p></td><td class="cl-27927f67"><p class="cl-27925860"><span class="cl-278ab876">[-2.82, -0.67]</span></p></td></tr></tbody></table></div>

The report package provides quite comprehensive tables, so one may request an abbreviated table with the short argument.

nice_table(stats.table, report = "t.test", short = TRUE)
<div class="tabwid"><style>.cl-27e15a6e{table-layout:auto;}.cl-27ce06f8{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-27ce06f9{font-family:'Times New Roman';font-size:12pt;font-weight:normal;font-style:italic;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-27d5a6ec{margin:0;text-align:center;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:5pt;padding-top:5pt;padding-left:5pt;padding-right:5pt;line-height: 2;background-color:transparent;}.cl-27d5cde8{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0.5pt solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-27d5cde9{background-color:transparent;vertical-align: middle;border-bottom: 0.5pt solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}</style><table class='cl-27e15a6e'><thead><tr style="overflow-wrap:break-word;"><td class="cl-27d5cde8"><p class="cl-27d5a6ec"><span class="cl-27ce06f8">Parameter</span></p></td><td class="cl-27d5cde8"><p class="cl-27d5a6ec"><span class="cl-27ce06f8">Group</span></p></td><td class="cl-27d5cde8"><p class="cl-27d5a6ec"><span class="cl-27ce06f9">t</span></p></td><td class="cl-27d5cde8"><p class="cl-27d5a6ec"><span class="cl-27ce06f9">df</span></p></td><td class="cl-27d5cde8"><p class="cl-27d5a6ec"><span class="cl-27ce06f9">p</span></p></td><td class="cl-27d5cde8"><p class="cl-27d5a6ec"><span class="cl-27ce06f9">d</span></p></td><td class="cl-27d5cde8"><p class="cl-27d5a6ec"><span class="cl-27ce06f8">95% CI (</span><span class="cl-27ce06f9">d</span><span class="cl-27ce06f8">)</span></p></td></tr></thead><tbody><tr style="overflow-wrap:break-word;"><td class="cl-27d5cde9"><p class="cl-27d5a6ec"><span class="cl-27ce06f8">mpg</span></p></td><td class="cl-27d5cde9"><p class="cl-27d5a6ec"><span class="cl-27ce06f8">am</span></p></td><td class="cl-27d5cde9"><p class="cl-27d5a6ec"><span class="cl-27ce06f8">-3.77</span></p></td><td class="cl-27d5cde9"><p class="cl-27d5a6ec"><span class="cl-27ce06f8">18.33</span></p></td><td class="cl-27d5cde9"><p class="cl-27d5a6ec"><span class="cl-27ce06f8">.001</span></p></td><td class="cl-27d5cde9"><p class="cl-27d5a6ec"><span class="cl-27ce06f8">-1.76</span></p></td><td class="cl-27d5cde9"><p class="cl-27d5a6ec"><span class="cl-27ce06f8">[-2.82, -0.67]</span></p></td></tr></tbody></table></div>

And there you go!

Thanks for checking in

Make sure to check out this page again if you use the code after a time or if you encounter errors, as I periodically update or improve the code. Feel free to contact me for comments, questions, or requests to improve this function at https://github.com/rempsyc/rempsyc/issues. See all tutorials here: https://remi-theriault.com/tutorials.