rowRank

语法

rowRank(X, [ascending=true], [groupNum], [ignoreNA=true], [tiesMethod=’min’], [percent=false], [precision])

row 系列函数通用参数说明和计算规则请参考: 行计算系列(row 系列)

参数

ascending 是一个布尔值,表示排序方向。true 表示升序,false 表示降序。默认值为 true。它是一个可选参数。

groupNum 是一个正整数,表示排序形成的组的数量。它是一个可选参数。

ignoreNA 是一个布尔值,表示是否忽略 NULL 值。true 表示忽略 NULL 值,false 表示 NULL 值参与排名。默认值为 true。它是一个可选参数。NULL 值参与排序时,NULL 值为最小值。

New in version 1.30.21: 参数 tiesMethod 支持 ‘first’

tiesMethod 是一个字符串,表示如何对具有相同值的元素进行排名。

  • ‘min’表示取最小排名。

  • ‘max’表示取最大排名。

  • ‘average’表示取排名的均值。

  • ‘first’ 表示按照原数据的顺序排名。

New in version 1.30.14: 参数 percent

percent 是一个布尔值,表示是否以百分比形式显示返回的排名。

New in version 1.30.21: 参数 precision

precision 是一个 [1, 15] 范围内的整数,用于设置参与排序的值的精度。若两个值之差的绝对值 <= 10^(-precision) ,则认为两值相等。

注意:指定 precision 参数后,X 只能是数值型对象。且 tiesMethod 不能指定为 ‘first’。

详情

逐行计算 X 的元素排名或组排名,排名方式请参照 rank,返回一个和 X 维度相同的矩阵。

例子

$ m=matrix(3 1 2 4 7 6 9 8 5, 9 NULL 2 3 5 6 3 2 8).transpose();
$ m

#0

#1

#2

#3

#4

#5

#6

#7

#8

3

1

2

4

7

6

9

8

5

9

2

3

5

6

3

2

8

$ m.rowRank();

#0

#1

#2

#3

#4

#5

#6

#7

#8

2

0

1

3

6

5

8

7

4

7

0

2

4

5

2

0

6

$ m.rowRank(false);

#0

#1

#2

#3

#4

#5

#6

#7

#8

6

8

7

5

2

3

0

1

4

0

6

4

3

2

4

6

1

$ m.rowRank(groupNum=3);

#0

#1

#2

#3

#4

#5

#6

#7

#8

0

0

0

1

2

1

2

2

1

2

0

0

1

1

0

0

2

$ m.rowRank(ignoreNA=false);

#0

#1

#2

#3

#4

#5

#6

#7

#8

2

0

1

3

6

5

8

7

4

8

0

1

3

5

6

3

1

7

$ m.rowRank(ignoreNA=false, tiesMethod='max');

#0

#1

#2

#3

#4

#5

#6

#7

#8

2

0

1

3

6

5

8

7

4

8

0

2

4

5

6

4

2

7

$ m.rowRank(ignoreNA=false, tiesMethod='first');

col1

col2

col3

col4

col5

col6

col7

col8

col9

2

0

1

3

6

5

8

7

4

8

0

1

3

5

6

4

2

7

相关函数: rowDenseRank, rank