[R] rank() vs SAS proc rank

Gabor Grothendieck ggrothendieck at myway.com
Wed Mar 31 03:33:17 CEST 2004


This afternoon (EST) there were solutions to two different problems,
which on reflection have a similarity:

Prof Brian Ripley's rank variation:

  1 + rowSums(outer(x, x, ">"))

and my unique row counts:

  "%all.==%" <- function(a,b)apply(b,2,function(x)apply(t(a) == x,2,all))
  colSums( A %all.==% t(unique(A)) )

It occurred to me that if we define the APL-style
generalized matrix multiply like this:

inner <- function(a,b,f,g){ 
		f <- match.fun(f)
		g <- match.fun(g)
                apply(b,2,function(x)apply(g(t(a),x),2,f))
}

then both problems can be put into a similar form:

   1+inner( t(w), t(w), sum, "<" )

and

   colSums( inner( A, t(unique(A)), all, "==" ) )




More information about the R-help mailing list