This is an R implementation of the web-based ‘Practical Meta-Analysis Effect Size Calculator’ from David B. Wilson. The original calculator can be found at

Based on the input, the effect size can be returned as standardized mean difference (d), Cohen’s f, eta squared, Hedges’ g, correlation coefficient effect size r or Fisher’s transformation z, odds ratio or log odds effect size.

Return values

The return value of all functions has the same structure:

  • The effect size, whether being d, g, r, f, (Cox) odds ratios or (Cox) logits, is always named es.
  • The standard error of the effect size, se.
  • The variance of the effect size, var.
  • The lower and upper confidence limits ci.lo and ci.hi.
  • The weight factor, based on the inverse-variance, w.
  • The total sample size totaln.
  • The effect size measure, measure, which is typically specified via the es.type-argument.
  • Information on the effect-size conversion, info.
  • A string with the study name, if the study-argument was specified in function calls.

Correlation Effect Size

If the correlation effect size r is computed, the transformed Fisher’s z and their confidence intervals are also returned. The variance and standard error for the correlation effect size r are always based on Fisher’s transformation.

Odds Ratio Effect Size

For odds ratios, the variance and standard error are always returned on the log-scale!

S3 methods

The esc package offers the S3 methods print() and

Combining results into a single data frame

The combine_esc() method is a convenient way to create pooled data frames of different effect size calculations, for further use. Here is an example of combine_esc(), which returns a data.frame object.

e1 <- esc_2x2(grp1yes = 30, grp1no = 50, grp2yes = 40, grp2no = 45, study = "Study 1")
e2 <- esc_2x2(grp1yes = 30, grp1no = 50, grp2yes = 40, grp2no = 45, es.type = "or", study = "Study 2")
e3 <- esc_t(p = 0.03, grp1n = 100, grp2n = 150, study = "Study 3")
e4 <- esc_mean_sd(grp1m = 7, grp1sd = 2, grp1n = 50, grp2m = 9, grp2sd = 3, grp2n = 60, es.type = "logit", 
    study = "Study 4")

combine_esc(e1, e2, e3, e4)
#>     study      es weight sample.size     se     var    ci.lo   ci.hi measure
#> 1 Study 1 -0.3930  9.945         165 0.3171 0.10056 -1.01456  0.2285   logit
#> 2 Study 2  0.6750  9.945         165 0.3171 0.10056  0.36256  1.2567      or
#> 3 Study 3  0.2818 59.434         250 0.1297 0.01683  0.02755  0.5360       d
#> 4 Study 4 -1.3982  7.721         110 0.3599 0.12951 -2.10354 -0.6928   logit

esc is still under development, i.e. not all effect size computation options are implemented yet. The remaining options will follow in further updates.


Latest development build

To install the latest development snapshot (see latest changes below), type following commands into the R console:


Official, stable release

CRAN_Status_Badge    downloads    total

To install the latest stable release from CRAN, type following command into the R console:


In case you want / have to cite my package, please use citation('esc') for citation information.