Sprawdź, czy ramka danych jest posortowaną wersją innej ramki danych

Czy jest możliwe sprawdzenie, czy jakaś ramka danych jest po prostu posortowaną wersją innej ramki danych? Na przykład, jeśli mam dwie ramki danycha ib, czy jest jakiś sposób na łatwe określenie, czya jest po prostu zmienioną wersjąb (lub odwrotnie)?

Oto trywialny przykład:

a <- data.frame(x1=1:10, x2=11:20, x3=1:2)
b <- a[order(a$x3, a$x1, decreasing=TRUE),]

Najbliższą rzeczą, jaką mogę myśleć, jestall.equal, ale jego wynik nie jest pomocny (przynajmniej dla mnie):

> all.equal(a,b)
[1] "Attributes: < Component 2: Mean relative difference: 0.9545455 >"
[2] "Component 1: Mean relative difference: 0.9545455"                
[3] "Component 2: Mean relative difference: 0.3387097"                
[4] "Component 3: Mean relative difference: 0.6666667"

Wyobrażam sobie, że jest jakiś oczywisty sposób na zrobienie tego, co nawiązuje do mnie. Szukam ogólnego rozwiązania, które dobrze skalowałoby się do wielu zmiennych i wielu obserwacji (a więc powyższy przykład jest po prostu demonstracyjny).

Również: Idealnie, taka funkcja również określałaby, czya jest podzbioremb (lub odwrotnie).

questionAnswers(2)

yourAnswerToTheQuestion