rank()

阅读(394) 标签: rank,

本章介绍rank()函数的多种用法。

A.rank(y)

描述:

计算序列成员排名

语法:

A.rank(y)

备注:

求成员y在序列A中的排名,缺省从小到大排,返回成员y的排名。

选项:

@z

从大到小排名。注意:这里是小写的字母"z"

@i

先去掉A中的重复成员,然后计算y在其中的排名

@s

先对有重复成员的排名做均值计算,然后返回计算后的排名,可能不是整数。例如:[3,2,6,6,9],常用的排名结果为[2,1,3,3,5],使用@s选项时,采用平均排名就会变为[2.0,1.0,(3+4)/2,(3+4)/2,5.0]

参数:

A

序列

y

A中的成员

返回值:

序列A的成员排名组成的数列

示例:

 

A

 

1

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

 

2

=A1.rank(6)

8,从小到大的排名

3

=A1.rank@z(6)

2,从大到小的排名

4

=A1.rank@i(2)

3,先去掉重复成员,然后计算排名

5

=A1.rank@s(2)

3.5,先对有重复成员的排名做均值运算,再返回排名

相关概念:

A.rank(y,x)

A.rank( y,x )

描述:

获取某成员在经过计算后的序列中的排名

语法:

A.rank(y,x)

相当于A.(x).rank(y)

备注:

对着序列A逐条记录计算表达式x的值,返回y在序列A.(x)中的排名。缺省排名顺序从小到大。

选项:

@z

从大到小排名。注意:这里是小写的字母“z”

@i

先去掉A.(x)中的重复成员,然后计y在其中的排名

@s

先对有重复成员的排名做均值计算,然后返回计算后的排名,可能不是整数。例如:[3,2,6,6,9],常用的排名结果为[2,1,3,3,5],使用@s选项时,采用平均排名就会变为[2.0,1.0,(3+4)/2,(3+4)/2,5.0]

参数:

x

A的计算表达式

y

A中的成员或者用于比较A.(x)的值

A

序列

返回值:

y成员排名

示例:

 

A

 

1

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

 

2

=A1.rank(90,SCORE)

23,从小到大排名

3

=A1.rank@z(90,SCORE)

5,从大到小排名

4

=A1.rank@i(90,SCORE)

10,去除重复的成绩后的排名

5

=A1.(SCORE).rank(90)

23

6

=A1.rank@s(90,SCORE)

23.5,先对有重复成员的排名做均值运算,再返回排名

相关概念:

A.rank(y)

rank()

描述:

循环函数中迭代运算,对有相同字段值的的成员统一编号

语法:

rank(F;Gi,…)

备注:

用于循环函数中,如果Gi字段值相同则对F字段值相同的成员的从1开始编号,F字段值相同的编号相同,当F字段值发生变化时下一个F字段值的编号变为上一个F字段值的编号加上上一个F字段相同值的个数。如果Gi字段值发生变化,则重复上述运算

参数:

F

字段名

Gi

字段名

返回值:

整数

示例:

 

A

 

1

=demo.query("select * from SCORES ")

 

2

=A1.derive(rank(STUDENTID;CLASS):F1)