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).