[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