ranks()

阅读(1897) 标签: 获取, 排名,

描述:

获取序列成员排名

语法:

A.ranks(x)

备注:

对序列A计算表达式x,返回序列A.(x)排名组成的序列。默认为升序排名。

参数:

A

序列。

x

表达式。A为排列/序表时不可省略。

选项:

@z

降序排名。

@i

去除重复重复成员后计算排名。

@s

有重复成员时先对其排名做均值计算,再计算排名,返回值存在非整数的情况。

返回值:

数列

示例:

A为序列:

 

A

 

1

=[2,1,3,4,8,5,2,0]

 

2

=A1.ranks()

返回结果:[3,2,5,6,8,7,3,1]升序排名。

3

=A1.ranks@z()

返回结果:[5,7,4,3,1,2,5,8]降序排名。

4

=A1.ranks@i()

返回结果:[3,2,4,5,7,6,3,1]先去掉重复成员,再计算排名。

5

=A1.ranks@s()

返回结果:[3.5,2.0,5.0,6.0,8.0,7.0,3.5,1.0],先对重复成员的排名做均值运算,再计算排名,即:值2的成员有两个,排名分别为34,均值运算结果为(3+4)/2=3.5,所以2在序列中的排名为3.5

A为序表/排列:

 

A

 

1

=demo.query("select top 10 * from SCORES where SUBJECT='English'")

2

=A1.ranks@z(SCORE)

根据SCORE值进行降序排名,返回结果:[4,5,6,1,8,3,6,9,2,10]

3

=A1.ranks@zi(SCORE)

去除SCORE重复值后再进行降序排名,返回结果:[4,5,6,1,7,3,6,8,2,9]

4

=A1.ranks@zs(SCORE)

先对重复成员的排名做均值运算,再计算排名,返回结果:[4.0,5.0,6.5,1.0,8.0,3.0,6.5,9.0,2.0,10.0] ,即:值为75的成员有两个,排名分别为67,均值运算结果为(6+7)/2=6.5,所以75在序列中的排名为6.5