all.equal.data.table.RdConvenient test of data equality between data.table objects. Performs some factor level stripping.
# S3 method for data.table all.equal(target, current, trim.levels=TRUE, check.attributes=TRUE, ignore.col.order=FALSE, ignore.row.order=FALSE, tolerance=sqrt(.Machine$double.eps), ...)
| target, current |
|
|---|---|
| trim.levels | A logical indicating whether or not to remove all unused levels in columns
that are factors before running equality check. It effect only when |
| check.attributes | A logical indicating whether or not to check attributes, will apply not only to data.table but also attributes of the columns. It will skip |
| ignore.col.order | A logical indicating whether or not to ignore columns order in |
| ignore.row.order | A logical indicating whether or not to ignore rows order in |
| tolerance | A numeric value used when comparing numeric columns, by default |
| ... | Passed down to internal call of |
For efficiency data.table method will exit on detected non-equality issues, unlike most all.equal methods which process equality checks further. Besides that fact it also handles the most time consuming case of ignore.row.order = TRUE very efficiently.
Either TRUE or a vector of mode "character" describing the
differences between target and current.
dt1 <- data.table(A = letters[1:10], X = 1:10, key = "A") dt2 <- data.table(A = letters[5:14], Y = 1:10, key = "A") isTRUE(all.equal(dt1, dt1))#> [1] TRUE#> [1] TRUE#> [1] "Different column order"all.equal(x, y, ignore.col.order = TRUE)#> [1] TRUE#> [1] "Column 'A': 9 string mismatches"all.equal(x, y, ignore.row.order = TRUE)#> [1] TRUE#> [1] "Datasets has different keys. 'target': A. 'current' has no key."all.equal(x, y, check.attributes = FALSE)#> [1] TRUE# trim.levels x <- data.table(A = factor(letters[1:10])[1:4]) # 10 levels y <- data.table(A = factor(letters[1:5])[1:4]) # 5 levels all.equal(x, y, trim.levels = FALSE)#> [1] "Column 'A': Levels not identical. No attempt to refactor because trim.levels is FALSE"all.equal(x, y, trim.levels = FALSE, check.attributes = FALSE)#> [1] "Column 'A': Levels not identical. No attempt to refactor because trim.levels is FALSE"all.equal(x, y)#> [1] TRUE