Returns a proxy object (i.e. an atomic vector or data frame of atomic vectors). For vctrs, this determins the behaviour of order() and sort() (via xtfrm()); <, >, >= and <= (via vec_compare()); and min(), max(), median(), and quantile().

vec_proxy_compare(x, relax = FALSE)



A vector x.


If TRUE, and x is otherwise non-comparable, will return vec_seq_along(x). This allows a data frame to be orderable, even if one of its components is not. This is experimental and may change in the future.


A 1d atomic vector or a data frame.


The default method assumes that all classes built on top of atomic vectors or records are orderable. If your class is not, you will need to provide a vec_proxy_compare() method that throws an error. Note that the default vec_proxy_equal() method calls vec_proxy_compare() so if your object is equal-able but not comparable, you'll need to provide methods for both generics.