table
语法
table(X, [X1], [X2], .....) 或 table(capacity:size, colNames,
                    colTypes)
详情
- 用法一:将单个或多个向量/矩阵/元组,或多个向量和元组的混合数据形式转换成表。
- 用法二:创建一个固定数据类型的空表或初始化的表。
参数
- 
                        若 Xk 的元素是等长的向量,元组的每个元素将作为表的一列。元组的长度必须等于表的行数。 
- 
                        若 Xk 包含不同类型或不等长元素,则将单独作为表的一列(列类型为 ANY),其每个元素将作为该列每行的元素值。Xk 的长度仍然必须和表的行数保持一致。 
- 
                        capacity 是正整数,表示建表时系统为该表分配的内存(以记录数为单位)。当记录数超过 capacity 时,系统首先会分配 capacity 1.2~2倍的新的内存空间,然后复制数据到新的内存空间,最后释放原来的内存。对于规模较大的表,此类操作的内存占用会很高。因此,建议建表时预先分配一个合理的 capacity。 
- 
                        size 是整数,表示该表新建时的行数。若 size =0,创建一个空表。 若 size>0,则建立一个只包含 size 条记录的表,记录初始值如下: - 
                                BOOL 类型默认值为 false; 
- 
                                数值类型、时间类型、IPADDR、COMPLEX、POINT 的默认值为 0; 
- 
                                Literal, INT128 类型的默认值为 NULL。 
 注:如果 colTypes 指定为数组向量, size 必须为0。
- 
                                
- 
                        colNames 是一个向量,表示列名。 
- 
                        colTypes 是一个向量,表示每列的数据类型,支持数组向量类型和元组(ANY)类型。可使用表示数据类型的系统保留字或相应的字符串。 
例子
第一种用法:
id=`XOM`GS`AAPL
x=102.1 33.4 73.6
table(id, x);| id | x | 
|---|---|
| XOM | 102.1 | 
| GS | 33.4 | 
| AAPL | 73.6 | 
table(`XOM`GS`AAPL as id, 102.1 33.4 73.6 as x);| id | x | 
|---|---|
| XOM | 102.1 | 
| GS | 33.4 | 
| AAPL | 73.6 | 
m=matrix(1 2, 3 4, 5 6);
m;| #0 | #1 | #2 | 
|---|---|---|
| 1 | 3 | 5 | 
| 2 | 4 | 6 | 
table(m);| C0 | C1 | C2 | 
|---|---|---|
| 1 | 3 | 5 | 
| 2 | 4 | 6 | 
m.rename!(1 2, `a`b`x);
m;| a | b | x | |
|---|---|---|---|
| 1 | 1 | 3 | 5 | 
| 2 | 2 | 4 | 6 | 
table(m);| a | b | x | 
|---|---|---|
| 1 | 3 | 5 | 
| 2 | 4 | 6 | 
x=1..6
y=matrix(11..16, 17..22)
z=(101..106, 201..206)
t=table(x,y,z)
t.rename!(`x`y1`y2`z1`z2);
t;| x | y1 | y2 | z1 | z2 | 
|---|---|---|---|---|
| 1 | 11 | 17 | 101 | 201 | 
| 2 | 12 | 18 | 102 | 202 | 
| 3 | 13 | 19 | 103 | 203 | 
| 4 | 14 | 20 | 104 | 204 | 
| 5 | 15 | 21 | 105 | 205 | 
| 6 | 16 | 22 | 106 | 206 | 
id = 1 2 3
val = [[1,2,3], [4,5,6],[7,8,9]]
metrics = [`A,[2.2 3.2], 3.2]
t = table(id, val, metrics)| id | col1 | col2 | col3 | metrics | 
| 1 | 1 | 4 | 7 | A | 
| 2 | 2 | 5 | 8 | ([2.2,3.2]) | 
| 3 | 3 | 6 | 9 | 3.2 | 
第二种用法:
table(100:5, `name`id`value, [STRING,INT,DOUBLE]);| name | id | value | 
|---|---|---|
| 0 | 0 | |
| 0 | 0 | |
| 0 | 0 | |
| 0 | 0 | |
| 0 | 0 | 
table(100:5, `name`id`value, `STRING`INT`DOUBLE);| name | id | value | 
|---|---|---|
| 0 | 0 | |
| 0 | 0 | |
| 0 | 0 | |
| 0 | 0 | |
| 0 | 0 | 
table(100:1, [`value], [DOUBLE]);| value | 
|---|
| 0 | 
