Skip to contents

Prints a matrix where . means cell matches, X means cell does cells do not match, + cell (row) is missing, and - cell (row) should not be there. If structure is set to TRUE, C indicates columnar structure mismatch, R indicates row-structure mismatch, and S indicates mismatch in both row and column structure.

Usage

compare_rtables(
  object,
  expected,
  tol = 0.1,
  comp.attr = TRUE,
  structure = FALSE
)

Arguments

object

rtable to test

expected

rtable expected

tol

numerical tolerance

comp.attr

boolean. Compare format of cells. Other attributes are silently ignored.

structure

boolean. Should structure (in the form of column and row paths to cells) be compared. Currently defaults to FALSE, but this is subject to change in future versions.

Value

a matrix of class "rtables_diff" representing the differences between object and expected as described above.

Note

In its current form compare_rtables does not take structure into account, only row and cell position.

Examples


t1 <- rtable(header = c("A", "B"), format = "xx", rrow("row 1", 1, 2))
t2 <- rtable(header = c("A", "B", "C"), format = "xx", rrow("row 1", 1, 2, 3))

compare_rtables(object = t1, expected = t2)
#>   1   2   3  
#> 1 "." "." "-"
#> attr(,"info")
#> [1] "column names are not the same"
#> attr(,"class")
#> [1] "rtables_diff" "matrix"       "array"       

if(interactive()){
Viewer(t1, t2)
}

 expected <- rtable(
    header = c("ARM A\nN=100", "ARM B\nN=200"),
    format = "xx",
    rrow("row 1", 10, 15),
    rrow(),
    rrow("section title"),
    rrow("row colspan", rcell(c(.345543, .4432423), colspan = 2, format = "(xx.xx, xx.xx)"))
 )

expected
#>                 ARM A    ARM B 
#>                 N=100    N=200 
#> ———————————————————————————————
#> row 1             10       15  
#>                                
#> section title                  
#> row colspan      (0.35, 0.44)  

 object <- rtable(
    header = c("ARM A\nN=100", "ARM B\nN=200"),
    format = "xx",
    rrow("row 1", 10, 15),
    rrow("section title"),
    rrow("row colspan", rcell(c(.345543, .4432423), colspan = 2, format = "(xx.xx, xx.xx)"))
 )

compare_rtables(object, expected, comp.attr = FALSE)
#>   1   2  
#> 1 "." "."
#> 2 "." "."
#> 3 "X" "X"
#> 4 "-" "-"
#> attr(,"info")
#> [1] "cell attributes have not been compared"
#> [2] "row labels are not the same"           
#> attr(,"class")
#> [1] "rtables_diff" "matrix"       "array"       

 object <- rtable(
    header = c("ARM A\nN=100", "ARM B\nN=200"),
    format = "xx",
    rrow("row 1", 10, 15),
    rrow(),
    rrow("section title")
 )

 compare_rtables(object, expected)
#>   1   2  
#> 1 "." "."
#> 2 "." "."
#> 3 "." "."
#> 4 "-" "-"
#> attr(,"info")
#> [1] "row labels are not the same"
#> attr(,"class")
#> [1] "rtables_diff" "matrix"       "array"       

 object <- rtable(
    header = c("ARM A\nN=100", "ARM B\nN=200"),
    format = "xx",
    rrow("row 1", 14, 15.03),
    rrow(),
    rrow("section title"),
    rrow("row colspan", rcell(c(.345543, .4432423), colspan = 2, format = "(xx.xx, xx.xx)"))
 )

 compare_rtables(object, expected)
#>      [,1] [,2]
#> [1,] "X"  "." 
#> [2,] "."  "." 
#> [3,] "."  "." 
#> [4,] "X"  "X" 
#> attr(,"class")
#> [1] "rtables_diff" "matrix"       "array"       

 object <- rtable(
    header = c("ARM A\nN=100", "ARM B\nN=200"),
    format = "xx",
    rrow("row 1", 10, 15),
    rrow(),
    rrow("section title"),
    rrow("row colspan", rcell(c(.345543, .4432423), colspan = 2, format = "(xx.x, xx.x)"))
 )

 compare_rtables(object, expected)
#>      [,1] [,2]
#> [1,] "."  "." 
#> [2,] "."  "." 
#> [3,] "."  "." 
#> [4,] "X"  "X" 
#> attr(,"class")
#> [1] "rtables_diff" "matrix"       "array"