A.groupc( g ; v )

阅读(835) 标签: 行列转换,

描述:

对序列的序列执行行列转换计算。

语法:

A.groupc(g;v)

备注:

对序列A的成员序列执行行列转换计算。默认为行转列。

A是由序列组成的序列,g和v是由A成员序列中的部分成员组成的序列,引用A成员的成员时用~(i)或~i形式表示。

将A成员根据g分组,然后将v对应分布到每组序列中,返回序列组成的序列。

参数g、v中只有一个成员时可以写成单值的形式。

参数:

A

由序列组成的序列。

g

由A成员序列中的部分成员组成的序列。

v

由A成员序列中的部分成员组成的序列。

选项:

@r(g;v;k)

列转行。k为整数,v中每k个成员作为一组与g组成新的序列,返回这些序列组成的序列。

返回值:

序列组成的序列

示例:

 

A

 

1

=file("t3.txt").cursor@w().fetch()

返回由序列组成的序列:

2

=A1.groupc(~(1);[(~2),(~3)])

对A1的成员序列执行行转列计算,先将A1按照成员的第1个成员分组,然后将成员序列中的第2、3个成员对应分布到每个组序列中,返回结果如下:

3

=A2.groupc@r(~1;[~2,~3,~4,~5,~6,~7];2)

使用@r选项,对A2执行列转行计算,A2成员序列中的第2到第7个成员按照次序每两个作为一组,与A2成员序列中的第1个成员组成一个新的成员序列,返回结果如下:

4

=A2.groupc@r(~1;~.to(2,);2)

使用@r选项,对A2执行列转行计算,A2成员序列中的第2到最后一个成员按照次序每两个作为一组,与A2成员序列中的第1个成员组成一个新的序列,返回结果同A1。

  g中包含多个成员时:

 

A

 

1

=connect("demo").query("select top 9 * from scores").array@b()

返回由序列组成的序列:

2

=A1.groupc([~1,~2];[~3,~4])

对A1的成员序列执行行转列计算,先将A1按照成员的第1、2个成员分组,然后将成员序列中的第3、4个成员对应分布到每个组序列中,返回结果如下:

3

=A2.groupc@r([~1,~2];~.to(3,);2)

使用@r选项,对A2执行列转行计算,A2成员序列中的第3到最后一个成员按照次序每两个作为一组,与A2成员序列中的第1、2个成员组成一个新的序列,返回结果同A1。

 

相关概念:

A.pivot()

P.groupc()