Comparing Two Sample Means in R
One can easily compare two sample means in R, as in the R language, all the classical tests are available in the package stats. There are different comparison tests, such as (i) one-sample mean test, (ii) two independent sample means test, and (iii) dependent sample test. When the population standard deviation is known, or the sample size (number of observations in the sample) is large enough ($n\ge 30$), tests related to the normal distribution are performed.
Data for Two Sample Means
Consider the following data set on the “latent heat of the fusion of ice (cal/gm)” from Rice, 1995.
| Method A | 79.98 | 80.04 | 80.02 | 80.04 | 80.03 | 80.03 | 80.04 | 79.97 | 80.05 |
| 80.03 | 80.02 | 80.00 | 80.02 | ||||||
| Method B | 80.02 | 79.94 | 79.98 | 79.97 | 79.97 | 80.03 | 79.95 | 79.97 |
Let us draw boxplots to make a comparison between these two methods. The comparison will help in checking the assumption of the independent two-sample test.
Note that one can read the data using the scan() function, create vectors, or even read the above data from data files such as *.txt and *.csv. In this tutorial, we assume vectors $A$ and $B$ for method A and method B.
A = c(79.98, 80.04, 80.02, 80.04, 80.03, 80.03, 80.04, 79.97, 80.05, 80.03, 80.02, 80.00, 80.02) B = c(80.02, 79.94, 79.98, 79.97, 79.97, 80.03, 79.95, 79.97)
Draw a Boxplot of Samples
Let us draw boxplots for each method that indicate the first group tends to give higher results than the second one.
boxplot(A, B)
Comparing Two Sample Means in R using t.test() Function
The unpaired t-test (independent two-sample test) for the equality of the means can be done using the function t.test() in R Language.
t.test(A, B)
From the results above, one can see that the p-value = 0.006939 is less than 0.05 (level of significance), which means that on average, both methods are statistically different from each other with reference to the latent heat of fusion of ice.
Testing the Equality of Variances of Samples
Note that the R language does not assume the equality of variances in the two samples. However, the F-test can be used to check/test the equality of the variances, provided that the two samples are from normal populations.
var.test(A, B)
From the above results, there is no evidence that the variances of both samples are statistically significant, as the p-value is greater than the 0.05 level of significance. It means that one can use the classical t-test that assumes the equality of the variances.
t.test(A, B, var.equa. = TRUE)
## Output
Welch Two Sample t-test
data: A and B
t = 3.2499, df = 12.027, p-value = 0.006939
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
0.01385526 0.07018320
sample estimates:
mean of x mean of y
80.02077 79.97875 




