Dataframe Difference Tool

Functions for comparing two data.frames against each other. The core functionality is to provide a detailed breakdown of any differences between two data.frames as well as providing utility functions to help narrow down the source of problems and differences.

CRAN_Status_Badge Travis build status Coverage status

The diffdf package is designed to enable detailed comparison of two data.frames. Whilst many packages exist for informing you if there are differences between data.frames, none provide as much detail on what and where those differences are as diffdf does!

Currently diffdf supports the following:

  • Checking for differences in values
  • Checking for differences in attributes
  • Checking for differences in classes
  • Checking for differences in column names
  • Checking for differences in the number of observations
  • Matching rows by key/id variables
  • Fuzzy comparisons (i.e. treating doubles and integers as the same)
  • Extracting datasets of different rows

For more information on features please consult the vignette and man pages.


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


And the development version from GitHub with:

# install.packages("devtools")


iris2 <- iris
for (i in 1:3) iris2[i,i] <- i^2
iris2$new_var <- "hello"
class(iris2$Species) <- "some class"
diffdf(iris, iris2)


diffdf 1.0.1

  • Added package down
  • Updated description file to include unnamed dependencies in test files
  • Added Travis
  • Added CodeCov

diffdf 1.0.0

  • Initial Release !!

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.0.2 by Craig Gower, 15 days ago

Report a bug at

Browse source code at

Authors: Craig Gower [cre, aut] , Kieran Martin [aut]

Documentation:   PDF Manual  

MIT + file LICENSE license

Imports tibble

Suggests testthat, lubridate, knitr, rmarkdown, purrr, dplyr, stringi, stringr, devtools, covr

See at CRAN