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