P.groupc( g:G , … ; F ,…; N ,… )

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

描述:

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

语法:

P.groupc(g:G,;F,…;N,…)

备注:

对序表/排列P执行多列的行列转换计算,默认为行转列。

P根据字段/表达式g分组,Gg列的列名,N,…为新的列字段名称,将每个G组中的字段F,…的值根据新列N,…依次对照分布,忽略多余的N

参数:

P

序表/排列。

g

分组字段/表达式。

G

结果集中的字段名,缺省为g

F

P中的字段名称,缺省使用P中除g,…以外的所有字段。

N

新的列字段名称,缺省使用序号表示列名。

选项:

@r

列转行。

F,…字段值依次分布到新的列N,…下,丢弃所有N都为空的记录行。

返回值:

序表

示例:

行转列:

 

A

 

1

=file("t1.txt").import@t()

返回序表内容如下:

2

=A1.groupc(Country:COUNTRY;Label,Total;L1,T1,L2,T2,L3,T3,L4,T4,L5,T5)

A1序表根据字段Country分组,并定义列名为:COUNTRY

然后将每组中的Label,Total字段值根据新列L1,T1,L2,T2,L3,T3,L4,T4,L5,T5依次对照分布,返回结果如下:

L5,T5为多余的列,所以忽略

3

=A1.groupc(Country;Label,Total;)

参数N,…缺省使用序号,参数G缺省使用g,返回结果如下:

4

=A1.groupc(Country;;)

参数F,…缺省为A1中除Country以外的所有字段,返回结果同A3

列转行:

 

A

 

1

=file("t2.txt").import@t()

返回序表内容如下:

2

=A1.groupc@r(Country;Label1,Total1,Label2,Total2,Label3,Total3,Label4,Total4;Label,Total)

使用@r选项,执行列转行计算,A1根据Country分组,将每组中的Label1,Total1,Label2,Total2,Label3,Total3,Label4,Total4字段值根据新列Label,Total依次对照分布,返回结果如下:

3

=A1.groupc@r(Country;;Label,Total)

参数F,…缺省为A1中除Country以外的所有字段,返回结果同A2

相关概念:

A.groupc()

A.pivot()