"rankscore" <- function(scores.orig,scores.know,s=1,rev=FALSE) { if(length(scores.orig) != length(scores.know)) stop("Dimensions of score vectors aren't compatible!") N <- length(scores.orig) ro <- rank(-1*scores.orig) rk <- rank(-1*scores.know) dr <- ro-rk if(rev) { dr <- -1*dr; r <- ro } else r <- rk xp <- dr y <- r-1 y[dr<0] <- N-r[dr<0] R <- xp/(N-1)*cos(pi/2/(N-1)*y)^s return(R) }