[R] trying to produce an array of ranks

Petr Pikal petr.pikal at precheza.cz
Thu Aug 28 09:12:03 CEST 2003


Hi

On 27 Aug 2003 at 20:32, John Christie wrote:

> OK, I am try to produce an array of ranks.  I have a set of data (s)
> that looks like this
> 
> rt	subj
> 312	dave
> 467	dave
> 411	dave
> 383	kim
> 398	kim
> ...
> 
> Now I want to make a column that is an array of the ranks of rt by
> subject.  The closest of gotten is using the following.
> 
> r <- by (s, s$subj, function(d) rank(d[1]))
> 
> This gets the data out with ranks but I cannot figure out how to
> easily extract each of the lists and turn the whole thing into a nice
> straight array (it is an array of lists when unclassed).  I couldn't
> get anything working with any of the apply's or ave.  Any suggestions?
>  This seems like it should be a common task.

I am not sure you want to your output to look like.

r[n] will give you ranks for nth person

unlist(r) vill give you one vector of ranks

If you want a table of ranks let say with names in the first row and ranks for each 
name below it it will probably need adding some NA to shorter vectors of ranks 
and cbinding them together, probably using for loop. 

something like 
cbind(as.vector(unlist(r[1])),c(as.vector(unlist(r[2])),NA))

Not an easy task :(

Maybe sombody will come with better answer

> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Cheers
Petr Pikal
petr.pikal at precheza.cz




More information about the R-help mailing list