# NOT RUN { (r1 <- rank(x1 <- c(3, 1, 4, 15, 92))) x2 <- c(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5) names(x2) <- letters[1:11] (r2 <- rank(x2)) # ties are averaged ## rank() is "idempotent": rank(rank(x)) == rank(x) : stopifnot(rank(r1) == r1, rank(r2) == r2) ## ranks without averaging rank(x2, ties.method= "first") # first occurrence wins rank(x2, ties.method= "last") # last occurrence wins rank(x2, ties.method= "random") # ties broken at random rank(x2, ties.method= "random") # and again ## keep ties ties, no average (rma <- rank(x2, ties.method= "max")) # as used classically (rmi <- rank(x2, ties.method= "min")) # as in Sports stopifnot(rma + rmi == round(r2 + r2)) ## Comparing all tie.methods: tMeth <- eval(formals(rank)$ties.method) rx2 <- sapply(tMeth, function(M) rank(x2, ties.method=M)) cbind(x2, rx2) ## ties.method's does not matter w/o ties: x <- sample(47) rx <- sapply(tMeth, function(MM) rank(x, ties.method=MM)) stopifnot(all(rx[,1] == rx)) # }
Run the code above in your browser using DataCamp Workspace