it seems you need to apply a definitive ordering to both tables, then its trivial to bind them together.
library(tidyverse)
(dfa <- tibble(
v1 = letters[1:3],
v2 = letters[26:24],
stat = 1:3
))
#middle agrees with dfa others differ
(dfb <- tibble(
v1 = c("z","b","x"),
v2 = c("a","y","c"),
stat = sqrt(1+1:3)
))
definite_arrange <- function(x){
mutate(rowwise(x),
vx =list(c(v1,v2)),
v1=ifelse(vx[1]<vx[2],vx[1],vx[2]),
v2=ifelse(vx[1]<vx[2],vx[2],vx[1])) |>
select(-vx) |>
ungroup()
}
bind_rows(
definite_arrange(dfa),
definite_arrange(dfb)
) %>% arrange(v1, v2,stat)