denseRank
Syntax
denseRank(X, [ascending=true],[ignoreNA=true], [percent=false])
Arguments
X is a vector/matrix.
ascending (optional) is a Boolean value indicating whether to sort in ascending order. The default value is true.
ignoreNA (optional) 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 (optional) 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 ascending 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.
Unlike denseRank, rank skips
                positions after equal rankings.
Examples
x=1 5 5 6 8 8 9
print denseRank(x)
// output
[0,1,1,2,3,3,4]
y=time(4 1 1 2)
print denseRank(y, ascending=false)
// output
[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
