描述:
计算指定值在序列成员中的排名。
语法:
备注:
对着序列A逐条记录计算表达式x的值,返回y在序列A.(x)中的排名。默认为升序排名。
选项:
| @z | 降序排名。 | 
| @i | 去掉重复成员后再计算排名。 | 
| @s | 有重复成员时先对其排名做均值计算,再计算排名,返回值存在非整数的情况。 | 
参数:
| A | 序列。 | 
| x | |
| y | 参与排名的值。 | 
返回值:
数值
示例:
A为序列:
| 
 | A | 
 | 
| 1 | =[2,1,3,4,8,5,2,0] | 
 | 
| 2 | =A1.rank(6) | 返回8,计算6在序列A1中的升序排名。 | 
| 3 | =A1.rank@z(6) | 返回2,计算6在序列A1中的降序排名。 | 
| 4 | =A1.rank@i(6) | 返回7,先去掉重复成员,然后再计算6在序列A1中的升序排名。 | 
| 5 | =A1.rank@s(2) | 返回3.5,使用@s选项,先对重复成员的排名做均值运算,再计算排名,即:序列A1的成员值2的排名分别为3、4,均值运算结果为(3+4)/2=3.5,所以2在序列中的排名为3.5。 | 
| 6 | =A1.rank(6,~+3) | 返回5,先对序列计算表达式后,再计算6在其中排名。 | 
A为序表/排列:
| 
 | A | 
 | 
| 1 | =demo.query("select * from SCORES where SUBJECT='English'").sort(SCORE:-1) | 
 | 
| 2 | =A1.rank@z(90,SCORE) | 计算90在序列A1的SCORE中的降序排名,结果返回5。 | 
| 3 | =A1.rank@iz(90,SCORE) | 去除序列A1中的重复SCORE值后,计算90在其中的降序排名,结果返回3。 | 
| 4 | =A1.rank@sz(90,SCORE) | 先对SCORE的重复值做均值运算,然后再计算排名,结果返回5.5。 |