[R] rank with ties
Angel
angel_lul at hotmail.com
Tue Jul 22 11:41:11 CEST 2003
Hi,
Is there a function like rank but that solves the ties by randomly assigning
a value (doesn't average ranks of ties).
This is what I actually need:
I want to make NA all elements of each column in an array that are ranked in
a position larger that rankmax for each column.
# Say I've got an array b:
b<-cbind(c(1:5,5:1),c(1,12,14,2,5,4:8))
#> b
# [,1] [,2]
#[1,] 1 1
#[2,] 2 12
#[3,] 3 14
#[4,] 4 2
#[5,] 5 5
#[6,] 5 4
#[7,] 4 5
#[8,] 3 6
#[9,] 2 7
#[10,] 1 8
rankmax<-5 # The maximum rank position
# I make the values ranked in a position larger than 5 NAs
b[which(apply(b,2,rank)>rankmax)]<-NA
# > b
# [,1] [,2]
# [1,] 1 1
# [2,] 2 NA
# [3,] NA NA
# [4,] NA 2
# [5,] NA 5
# [6,] NA 4
# [7,] NA 5
# [8,] NA NA
# [9,] 2 NA
#[10,] 1 NA
### What I want is one of the "3" in the first column not to be made NA.
(similar to the algorithm used in sort)
Thanks in advance for any help,
Angel
More information about the R-help
mailing list