Learn R Programming

Tools for Descriptive Statistics and Exploratory Data Analysis

DescTools is an extensive collection of miscellaneous basic statistics functions and comfort wrappers not available in the R basic system for efficient description of data. The author’s intention was to create a toolbox, which facilitates the (notoriously time consuming) first descriptive tasks in data analysis, consisting of calculating descriptive statistics, drawing graphical summaries and reporting the results. The package contains furthermore functions to produce documents using MS Word (or PowerPoint) and functions to import data from Excel.

A considerable part of the included functions can be found scattered in other packages and other sources written partly by Titans of R. The reason for collecting them here, was primarily to have them consolidated in ONE instead of dozens of packages (which themselves might depend on other packages, which are not needed at all), and to provide a common and consistent interface as far as function and arguments naming, NA handling, recycling rules etc. are concerned. Google style guides were used as naming rules (in absence of convincing alternatives). The ‘CamelStyle’ was consequently applied to functions borrowed from contributed R packages as well.

Feedback, feature requests, bug reports and other suggestions are welcome! Please report problems to GitHub issues tracker (preferred), Stack Overflow mentioning DescTools or directly to the maintainer.

Installation

You can install the released version of DescTools from CRAN with:

install.packages("DescTools")

And the development version from GitHub with:

if (!require("remotes")) install.packages("remotes")
remotes::install_github("AndriSignorell/DescTools")

Warning

Warning: This package is still under development. Although the code seems meanwhile quite stable, until release of version 1.0 you should be aware that everything in the package might be subject to change. Backward compatibility is not yet guaranteed. Functions may be deleted or renamed and new syntax may be inconsistent with earlier versions. By release of version 1.0 the “deprecated-defunct process” will be installed.

MS-Office

To make use of MS-Office features, you must have Office in one of its variants installed. All Wrd*, XL* and Pp* functions require the package RDCOMClient to be installed as well. Hence the use of these functions is restricted to Windows systems. RDCOMClient can be installed with:

install.packages("RDCOMClient", repos="http://www.omegahat.net/R")

The omegahat repository does not benefit from the same update service as CRAN. So you may be forced to install a package compiled with an earlier version, which usually is not a problem. Use e.g. for R 3.6.x/R 4.0.x:

url <- "http://www.omegahat.net/R/bin/windows/contrib/3.5.1/RDCOMClient_0.93-0.zip"
url <- "http://www.omegahat.net/R/bin/windows/contrib/4.0/RDCOMClient_0.94-0.zip"
install.packages(url, repos = NULL, type = "binary")

RDCOMClient does not exist for Mac or Linux, sorry.

Authors

Andri Signorell
Helsana Versicherungen AG, Health Sciences, Zurich
HWZ University of Applied Sciences in Business Administration Zurich.

R is a community project. This can be seen from the fact that this package includes R source code and/or documentation previously published by various authors and contributors. Special thanks go to Beat Bruengger, Mathias Frueh, Daniel Wollschlaeger for their valuable contributions and testing. The good things come from all these guys, any problems are likely due to my tweaking. Thank you all!

Maintainer: Andri Signorell

Examples

library(DescTools)
demo(describe, package = "DescTools")
demo(plots, package = "DescTools")

Copy Link

Version

Install

install.packages('DescTools')

Monthly Downloads

79,502

Version

0.99.57

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

September 25th, 2024

Functions in DescTools (0.99.57)

BartelsRankTest

Bartels Rank Test of Randomness
BinTree

Binary Tree
BhapkarTest

Bhapkar Marginal Homogeneity Test
Bg

Background of a Plot
ABCCoords

Coordinates for "bottomright", etc.
AxisBreak

Place a Break Mark on an Axis
BarText

Place Value Labels on a Barplot
Between, Outside

Operators To Check, If a Value Lies Within Or Outside a Given Range
Base Conversions

Converts Numbers From Binmode, Octmode or Hexmode to Decimal and Vice Versa
BinomCI

Confidence Intervals for Binomial Proportions
Benford

Benford's Distribution
Append

Append Elements to Objects
AUC

Area Under the Curve
Canvas

Canvas for Geometric Plotting
BrierScore

Brier Score for Assessing Prediction Accuracy
BootCI

Simple Bootstrap Confidence Intervals
BinomCIn

Sample Size for a Given Width of a Binomial Confidence Interval
CohenKappa

Cohen's Kappa and Weighted Kappa
BreuschGodfreyTest

Breusch-Godfrey Test
BoxCox

Box Cox Transformation
BreslowDayTest

Breslow-Day Test for Homogeneity of the Odds Ratios
CombPairs

Get All Pairs Out of One or Two Sets of Elements
ColToGrey

Convert Colors to Grey/Grayscale
AscToChar

Convert ASCII Codes to Characters and Vice Versa
Asp

Get Aspect Ratio of the Current Plot
BinomRatioCI

Confidence Intervals for the Ratio of Binomial Proportions
BoxCoxLambda

Automatic Selection of Box Cox Transformation Parameter
BinomDiffCI

Confidence Interval for a Difference of Binomials
CartToPol

Transform Cartesian to Polar/Spherical Coordinates and Vice Versa
BrierScoreCI

Confidence Intervals for the BrierScore
CCC

Concordance Correlation Coefficient
BubbleLegend

Add a Legend to a Bubble Plot
Clockwise

Calculates Begin and End Angle From a List of Given Angles in Clockwise Mode
CatTable

Function to write a table
CompleteColumns

Find Complete Columns
BoxedText

Add Text in a Box to a Plot
Closest

Find the Closest Value
Coalesce

Return the First Element Not Being NA
CoefVar

Coefficient of Variation
CohenD

Cohen's Effect Size
CochranArmitageTest

Cochran-Armitage Test for Trend
CochranQTest

Cochran's Q test
ConDisPairs

Concordant and Discordant Pairs
CountWorkDays

Count Work Days Between Two Dates
ColorLegend

Add a ColorLegend to a Plot
ColToHsv

R Color to HSV Conversion
Conf

Confusion Matrix And Associated Statistics
ColToHex

Convert a Color or a RGB-color Into Hex String
CourseData

Get HWZ Datasets
ColToRgb

Color to RGB Conversion
CronbachAlpha

Cronbach's Coefficient Alpha
CorPolychor

Polychoric Correlation
Cor

Covariance and Correlation (Matrices)
Cross

Vector Cross Product
ColumnWrap

Column Wrap
CountCompCases

Count Complete Cases
CstatCI

Confidence Intervals for the C Statistic (AUC)
Contrasts

Pairwise Contrasts
ConvUnit

Unit Conversion and Metrix Prefixes
Divisors

Calculate Divisors
DoBy

Evaluates a Function Groupwise
CorPart

Find the Correlations for a Set x of Variables With Set y Removed
CutAge

Create a Factor Variable by Cutting an Age Variable
CutQ

Create a Factor Variable Using the Quantiles of a Continuous Variable
CollapseTable

Collapse Levels of a Table
Datasets for Simulation

Datasets for Probabilistic Simulation
Date Functions

Basic Date Functions
ConnLines

Add Connection Lines to a Barplot
CrossN

n-dimensional Vector Cross Product
DescTools-package

Tools for Descriptive Statistics and Exploratory Data Analysis
Desc

Describe Data
DrawBezier

Draw a Bezier Curve
DrawCircle

Draw a Circle
Cstat

C Statistic (Area Under the ROC Curve)
ErrBars

Add Error Bars to an Existing Plot
Eps

Greenhouse-Geisser And Huynh-Feldt Epsilons
ConoverTest

Conover's Test of Multiple Comparisons
DoCall

Fast Alternative To The Internal do.call
DegToRad

Convert Degrees to Radians and Vice Versa
CramerVonMisesTest

Cramer-von Mises Test for Normality
DrawArc

Draw Elliptic Arc(s)
Association measures

Cramer's V, Pearson's Contingency Coefficient and Phi Coefficient
Yule's Q and Y, Tschuprow's T
DescToolsOptions

DescTools Options
Dot

Scalar Product
DrawBand

Draw Confidence Band
EX

Expected Value and Variance
DigitSum

Calculate Digit Sum
Entropy

Shannon Entropy and Mutual Information
FctArgs

Retrieve a Function's Arguments
ExtrVal

Distributions of Maxima and Minima
Factorize

Prime Factorization of Integers
Dummy

Generate Dummy Codes for a Factor
DunnTest

Dunn's Test of Multiple Comparisons
Fibonacci

Fibonacci Numbers
DunnettTest

Dunnett's Test for Comparing Several Treatments With a Control
DurbinWatsonTest

Durbin-Watson Test
Freq2D

Bivariate (Two-Dimensional) Frequency Distribution
GCD, LCM

Greatest Common Divisor and Least Common Multiple
DrawEllipse

Draw an Ellipse
GeomSn

Geometric Series
Gmean

Geometric Mean and Standard Deviation
Gompertz

The Gompertz distribution
Frechet

The Frechet Distribution
IsDichotomous

Test If a Variable Contains Only Two Unique Values
Freq

Frequency Table for a Single Variable
DrawRegPolygon

Draw Regular Polygon(s)
GeomTrans

Geometric Transformations
GoodmanKruskalGamma

Goodman Kruskal's Gamma
IsEuclid

Is a Distance Matrix Euclidean?
Format

Format Numbers and Dates
Frac

Fractional Part and Maximal Digits of a Numeric Value
GoodmanKruskalTau

Goodman Kruskal's Tau
DivCoefMax

Maximal value of Rao's diversity coefficient also called quadratic entropy
DivCoef

Rao's Diversity Coefficient
FixToTable

Convert a Text to a Table
FisherZ

Fisher-Transformation for Correlation to z-Score
GTest

G-Test for Count Data
GenRandGroups

Generate Random Groups
GenPareto

The Generalized Pareto Distribution
GenExtrVal

The Generalized Extreme Value Distribution
GetCalls

Return All Used Functions Within a Function
GetCurrWrd

Get a Handle to a Running Word/Excel Instance
HexToRgb

Convert a Hexstring Color to a Matrix With Three Red/Green/Blue Rows
IsOdd

Checks If An Integer Is Even Or Odd
KrippAlpha

Krippendorff's Alpha Reliability Coefficient
IsPrime

IsPrime Property
HodgesLehmann

Hodges-Lehmann Estimator of Location
HexToCol

Identify Closest Match to a Color Given by a Hexadecimal String
HoeffD

Matrix of Hoeffding's D Statistics
LOCF

Last Observation Carried Forward
Gumbel

The Gumbel Distribution
EtaSq

Effect Size Calculations for ANOVAs
IQRw

The (weighted) Interquartile Range
IdentifyA

Identify Points in Plot Lying Within a Rectangle or Polygon
Herfindahl

Concentration Measures
GetNewWrd

Create a New Word Instance
GetNewXL

Create a New Excel Instance
HosmerLemeshowTest

Hosmer-Lemeshow Goodness of Fit Tests
ExpFreq

Expected Frequencies
HotellingsT2Test

Hotelling's T2 Test
KappaM

Kappa for m Raters
KendallTauA

Kendall's \(\tau_{a}\)
FindCorr

Determine Highly Correlated Variables
FindColor

Get Color on a Defined Color Range
Lc

Lorenz Curve
LehmacherTest

Lehmacher's Test for Marginal Homogenity
Hmean

Harmonic Mean and Its Confidence Interval
ORToRelRisk

Transform Odds Ratio to Relative Risk
HmsToSec

Convert h:m:s To/From Seconds
Nf

As Numeric Factor
Logit

Generalized Logit and Inverse Logit Function
LogSt

Started Logarithmic Transformation and Its Inverse
MADCI

Confidence Intervals for Median Absolute Deviations
Measures of Accuracy

Measures of Accuracy
MixColor

Compute the Convex Combination of Two Colors
Mode

Mode, Most Frequent Value(s)
JonckheereTerpstraTest

Exact Version of Jonckheere-Terpstra Test
JarqueBeraTest

(Robust) Jarque Bera Test
InDots

Is a Specific Argument in the Dots-Arguments?
IsDate

Check If an Object Is of Type Date
NALevel

Replace NAs in a Factor by a Given Level
MeanDiffCI

Confidence Interval For Difference of Means
DescTools Palettes

Some Custom Palettes
KendallW

Kendall's Coefficient of Concordance W
PlotCandlestick

Plot Candlestick Chart
KendallTauB

Kendall's \(\tau_{b}\)
LinScale

Linear Scaling
PlotTernary

Ternary or Triangular Plots
NPV

Short Selection of Financial Mathematical Functions
LineToUser

Convert Line Coordinates To User Coordinates
Lambda

Goodman Kruskal Lambda
Gini

Gini Coefficient
Extremes

Kth Smallest/Largest Values
GiniSimpson

Gini-Simpson Coefficient, Gini-Deltas coefficient and Hunter-Gaston Index
LOF

Local Outlier Factor
Label, Unit

Label, Unit Attribute of an Object
Median

(Weighted) Median Value
Midx

Find the Midpoints of a Numeric Vector
HuberM

Safe (generalized) Huber M-Estimator of Location
MedianCI

Confidence Interval for the Median
MHChisqTest

Mantel-Haenszel Chi-Square Test
PlotDot

Cleveland's Dot Plots
PlotCashFlow

Cash Flow Plot
Permn

Number and Samples for Permutations or Combinations of a Set
PMT

Periodic Payment of an Annuity.
Phrase

Phrasing Results of t-Test
SampleTwins

Sample Twins
PageTest

Exact Page Test for Ordered Alternatives
MeanSE

Standard Error of Mean
Mar and Mgp

Set Plot Margins and Distances
ICC

Intraclass Correlations (ICC1, ICC2, ICC3 From Shrout and Fleiss)
PasswordDlg

Password Dialog
PearsonTest

Pearson Chi-Square Test for Normality
Unwhich

Inverse Which
PairApply

Pairwise Calculations
PlotCorr

Plot a Correlation Matrix
IsValidHwnd

Check Windows Pointer
Some numeric checks

Check a Vector For Being Numeric, Zero Or a Whole Number
MultMerge

Merge Multiple Data Frames
Keywords

List Keywords For R Manual Pages
PlotMonth

Cycle Plot for Seasonal Effects of an Univariate Time Series
ImputeKnn

Fill in NA values with the values of the nearest neighbours
Sort

Sort a Vector, a Matrix, a Table or a Data.frame
PlotTreemap

Create a Treemap
LeveneTest

Levene's Test for Homogeneity of Variance
LillieTest

Lilliefors (Kolmogorov-Smirnov) Test for Normality
List Variety Of Objects

List Objects, Functions Or Data in a Package
MAD

Median Absolute Deviation
MultinomCI

Confidence Intervals for Multinomial Proportions
NZ

Non Zero Elements
Mean

(Weighted) Arithmetic Mean
Recycle

Recyle a List of Elements
Measures of Shape

Skewness and Kurtosis
MeanAD

Mean Absolute Deviation From a Center Point
NemenyiTest

Nemenyi Test
PostHocTest

Post-Hoc Tests
RSqCI

Confidence Intervals for the R squared of a Linear Model
Mgsub

Multiple Gsub
Outlier

Outlier
MeanCI

Confidence Intervals for the Mean
SpearmanRho

Spearman Rank Correlation
Range

(Robust) Range
PlotACF

Combined Plot of a Time Series and Its ACF and PACF
Rotate

Rotate a Geometric Structure
Trim

Trim a Vector
RelRisk

Relative Risk
PoissonCI

Poisson Confidence Interval
PolarGrid

Plot a Grid in Polar Coordinates
WrdCellRange

Return the Cell Range Of a Word Table
Vigenere

Vigenere Cypher
RoundTo

Round to Multiple
PlotMosaic

Mosaic Plots
StrIsNumeric

Does a String Contain Only Numeric Data
PtInPoly

Point in Polygon
OddsRatio

Odds Ratio Estimation and Confidence Intervals
MeanCIn

Sample Size for a Given Width of a Confidence Interval for a Mean
MosesTest

Moses Test of Extreme Reactions
SaveAs

Saves an R Object Under a Different Name
PseudoR2

Pseudo R2 Statistics
Winsorize

Winsorize (Replace Extreme Values by Less Extreme Ones)
StrPad

Pad a String With Justification
SmoothSpline

Formula Interface For smooth.spline
Order

Distributions of Order Statistics
ToWrdPlot

Send a Plot to Word and Bookmark it
PlotPairs

Extended Scatterplot Matrices
Str

Compactly Display the Structure of any R Object
StrAbbr

String Abbreviation
RobScale

Robust Scaling With Median and Mad
Rev

Reverse Elements of a Vector, a Matrix, a Table, an Array or a Data.frame
MoveAvg

Moving Average
RevCode

Reverse Codes
StdCoef

Standardized Model Coefficients
StrLeft, StrRight

Returns the Left Or the Right Part Of a String
PlotMultiDens

Plot Multiple Density Curves
PlotFaces

Chernoff Faces
PDFManual

Get PDF Manual of a Package From CRAN
StrChop

Split a String into a Number of Sections of Defined Length
PlotBag

Bivariate Boxplot
PlotCirc

Plot Circular Plot
PlotPyramid

Draw a Back To Back Pyramid Plot
ParseFormula

Parse a Formula and Create a Model Frame
TOne

Create Table One Describing Baseline Characteristics
Strata

Stratified Sampling
%c%

Concatenates Two Strings Without Any Separator
PlotWeb

Plot a Web of Connected Points
QuantileCI

Confidence Interval for Any Quantile
SiegelTukeyTest

Siegel-Tukey Test For Equality In Variability
ParseSASDatalines

Parse a SAS Dataline Command
SomersDelta

Somers' Delta
PlotArea

Create an Area Plot
PlotFdist

Frequency Distribution Plot
reorder.factor

Reorder the Levels of a Factor
PlotBubble

Draw a Bubble Plot
WrdCaption

Insert Caption to Word
StripAttr

Remove Attributes from an Object
Triangular

The Triangular Distribution
Primes

Find All Primes Less Than n
PlotMiss

Plot Missing Data
WrdTable

Insert a Table in a Word Document
ToWrdB

Send Objects to Word and Bookmark Them
ScheffeTest

Scheffe Test for Pairwise and Otherwise Comparisons
RomanToInt

Convert Roman Numerals to Integers
PlotFun

Plot a Function
PercTable

Percentage Table
PercentRank

Percent Ranks
PlotLinesA

Plot Lines
WrdSaveAs

Open and Save Word Documents
SignTest

Sign Test
power.chisq.test

Power Calculations for ChiSquared Tests
VonNeumannTest

Von Neumann's Successive Difference Test
PlotECDF

Empirical Cumulative Distribution Function
Stamp

Date/Time/Directory Stamp the Current Plot
StrVal

Extract All Numeric Values From a String
pRevGumbel

"Reverse" Gumbel Distribution Functions
Quantile

(Weighted) Sample Quantiles
Rank

Fast Sample Ranks
SendOutlookMail

Send a Mail Using Outlook as Mail Client
PlotMarDens

Scatterplot With Marginal Densities
StrTrunc

Truncate Strings and Add Ellipses If a String is Truncated.
RndPairs

Create Pairs of Correlated Random Numbers
StrCountW

Count Words in a String
rSum21

Random Numbers Adding Up to 1
StrPos

Find Position of First Occurrence Of a String
TextContrastColor

Choose Textcolor Depending on Background Color
WrdStyle

Get or Set the Style in Word
TextToTable

Converts String To a Table
WrdTableBorders

Draw Borders to a Word Table
PlotLog

Logarithmic Plot
Recode

Recode a Factor
identify.formula

Identify Points In a Plot Using a Formula
as.ym

A Class for Dealing with the Yearmonth Format
Rename

Change Names of a Named Object
axTicks.POSIXct

Compute Axis Tickmark Locations (For POSIXct Axis)
WithOptions

Execute Function with Temporary Options
PlotConDens

Plot Conditional Densities
Untable

Recover Original Data From Contingency Table
TMod

Comparison Table For Linear Models
StrAlign

String Alignment
Some

Return Some Randomly Chosen Elements of an Object
StrExtract

Extract Part of a String
SysInfo

System Information
Depreciation

Several Methods of Depreciation of an Asset
StrCap

Capitalize the First Letter of a String
RSessionAlive

How Long Has the RSession Been Running?
Quot

Lagged Quotients
StuartMaxwellTest

Stuart-Maxwell Marginal Homogeneity Test
%like%

Like Operator
PlotVenn

Plot a Venn Diagram
split.formula

Formula Interface for Split
d.periodic

Periodic Table of Elements
d.pizza

Data pizza
PlotPolar

Plot Values on a Circular Grid
SetNames

Set the Names in an Object
PlotViolin

Plot Violins Instead of Boxplots
PlotQQ

QQ-Plot for Any Distribution
PowerPoint Interface

Add Slides, Insert Texts and Plots to PowerPoint
PlotProbDist

Plot Probability Distribution
as.matrix.xtabs

Convert xtabs To matrix
TTestA

Student's t-Test Based on Sample Statistics
Var

Variance
RgbToCol

Find the Nearest Named R-Color to a Given RGB-Color
ToLong, ToWide

Reshape a Vector From Long to Wide Shape Or Vice Versa
WrdBookmark

Some Functions to Handle MS-Word Bookmarks
WrdParagraphFormat

Get or Set the Paragraph Format in Word
StrSpell

Spell a String Using the NATO Phonetic or the Morse Alphabet
WoolfTest

Woolf Test For Homogeneity in 2x2xk Tables
WrdFont

Get or Set the Font in Word
ColToOpaque

Equivalent Opaque Color for Transparent Color
WrdMergeCells

Merges Cells Of a Defined Word Table Range
Shade

Produce a Shaded Curve
RevWeibull

The Reverse Weibull Distribution
matpow

Matrix Power
StrSplit

Split the Elements of a Character Vector
RunsTest

Runs Test for Randomness
UnirootAll

Finds many (all) roots of one equation within an interval
XLGetRange

Import Data Directly From Excel
lines.loess

Add a Loess or a Spline Smoother
ShapiroFranciaTest

Shapiro-Francia Test for Normality
SortMixed

Sort Strings with Embedded Numbers Based on Their Numeric Order
RgbToCmy

Conversion Between RGB and CMYK
SD

(Weighted) Standard Deviation
Sample

Random Samples and Permutations
TukeyBiweight

Calculate Tukey's Biweight Robust Mean
SplitToDummy

Split Strings of a Vector and Provide Dummy Codes for Found Pieces
WrdTableHeading

Insert Headings for a Table in Word
StrDist

Compute Distances Between Strings
XLSaveAs

Save Excel File
WrdFormatCells

Format Cells Of a Word Table
StuartTauC

Stuart \(\tau_{c}\)
TheilU

Theil's U Index of Inequality
VanWaerdenTest

van der Waerden Test
VIF

Variance Inflation Factors
SpreadOut

Spread Out a Vector of Numbers To a Minimum Interval
DescTools Aliases

Some Aliases Set for Convenience
ToWrd

Send Objects to Word
ZeroIfNA

Replace NAs by 0
TitleRect

Plot Boxed Annotation
XLView

Use MS-Excel as Viewer for a Data.Frame
SetAlpha

Add an Alpha Channel To a Color
ZTest

Z Test for Known Population Standard Deviation
SplitPath

Split Path In Drive, Path, Filename
%nin%

Find Matching (or Non-Matching) Elements
StrRev

Reverse a String
SplitAt

Split a Vector Into Several Pieces at Given Positions
d.diamonds

Data diamonds
day.name

Build-in Constants Extension
VarCI

Confidence Intervals for the Variance
UncertCoef

Uncertainty Coefficient
VarTest

ChiSquare Test for One Variance and F Test to Compare Two Variances
StrTrim

Remove Leading/Trailing Whitespace From A String
d.countries

ISO 3166-1 Country Codes
wdConst

Word VBA Constants
WrdPlot

Insert Active Plot to Word
XLDateToPOSIXct

Convert Excel Dates to POSIXct
lines.lm

Add a Linear Regression Line
VecRot

Vector Rotation (Shift Elements)
TwoGroups

Describe a Variable by a Factor with Two Levels
SplitToCol

Split Data Frame String Column Into Multiple Columns
Zodiac

Calculate the Zodiac of a Date
d.whisky

Classification of Scotch Single Malts
WrdPageBreak

Insert a Page Break
YuenTTest

Yuen t-Test For Trimmed Means
%overlaps%

Determines If And How Extensively Two Date Ranges Overlap
AddMonths

Add a Month to a Date
AndersonDarlingTest

Anderson-Darling Test of Goodness-of-Fit
Agree

Raw Simple And Extended Percentage Agreement
Assocs

Association Measures
Abind

Combine Multidimensional Arrays
Atkinson

Atkinson Index - A Measure of Inequality.
Abstract

Display Compact Abstract of a Data Frame
AllDuplicated

Index Vector of All Values Involved in Ties
AllIdentical

Test Multiple Objects for Exact Equality
BarnardTest

Barnard's Unconditional Test