denseRank
Syntax
denseRank(X, [ascending=true],[ignoreNA=true], [percent=false])
Arguments
X is a vector/matrix.
ascending is a Boolean value indicating whether to sort in ascending order. It is an optional parameter and the default value is true.
ignoreNA is a Boolean value indicating whether NULL values are ignored in ranking. The default value is true. If set to false, NULL is ranked as the minimum value.
percent is a Boolean value, indicating whether to display the returned rankings in percentile form. The default value is false.
Details
If X is a vector:
return the consecutive rank of each element in X based on the specified order.
If ignoreNA = true, the NULL values are ignored in ranking and return NULL.
If X is a matrix, conduct the aforementioned calculation within each column of X. The result is a matrix with the same shape as X.
Note: Unlike denseRank
, rank skips positions after equal rankings.
Examples
$ x=1 5 5 6 8 8 9
$ print denseRank(x)
[0,1,1,2,3,3,4]
$ y=time(4 1 1 2)
$ print denseRank(y, ascending=false)
[0,2,2,1]
$ m = matrix(1 2 2 NULL, 0 0 0 1, 0 0 NULL 2)
$ denseRank(m, ignoreNA=false)
#0 |
#1 |
#2 |
---|---|---|
1 |
0 |
1 |
2 |
0 |
1 |
2 |
0 |
0 |
0 |
1 |
2 |
$ t=table(`A`A`B`C`B`B`A`C`C as id,[4,1,NULL,1,2,4,5,0,-1] as val)
$ select id,val, denseRank(val) from t context by id
id |
val |
denseRank_val |
---|---|---|
A |
4 |
1 |
A |
1 |
0 |
A |
5 |
2 |
B |
||
B |
2 |
0 |
B |
4 |
1 |
C |
1 |
2 |
C |
0 |
1 |
C |
-1 |
0 |
Related function: rowDenseRank