table
语法
table(X, [X1], [X2], …..)
或
table(capacity:size, colNames, colTypes)
参数
第一种用法中,X, X1, X2 … 可以是向量、矩阵或元组。每个向量的长度、矩阵中每列长度、以及元组中每个元素的长度都必须相同。
第二种用法中:
capacity 是正整数,表示建表时系统为该表分配的内存(以记录数为单位)。当记录数超过 capacity 时,系统首先会分配 capacity 1.2~2倍的新的内存空间,然后复制数据到新的内存空间,最后释放原来的内存。对于规模较大的表,此类操作的内存占用会很高。因此,建议创建内存表时预先分配一个合理的 capacity。
size 是正整数,表示该表新建时的行数。若size=0,创建一个空表。
colNames 是一个向量,表示列名。
colTypes 是一个向量,表示每列的数据类型,1.30.7版本及以上支持datehour类型。可使用表示数据类型的系统保留字或相应的字符串。
详情
创建一个内存数据表。
例子
第一种用法:
$ 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 |
第二种用法:
$ 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 |