rename!
语法
rename!(X, Y, [Z])
参数
X 可以是向量、矩阵、索引矩阵、非共享内存表或分布式表(仅支持 OLAP 引擎)。
-
当 X 是向量时,Y 是表示标签的字符串。
-
当 X 是矩阵、索引矩阵时,如果 Z 没有指定,则 Y 是列标签;如果 Z 指定了,Y 是行标签,而 Z 是列标签。列标签和行标签的长度分别需要等于 X 的列数和行数。Y 和 Z 可以是任意数据类型。
-
当 X 是非共享内存表时,Y 和 Z 是字符串标量或向量。如果 Z 没有指定,则 Y 从左到右是新的列名,用户应该确保新的列名的数量小于或等于表中列的总数;如果 Z 指定了,则 Y 是旧的列名,Z 是对应的新的列名。
-
当 X 是分布式表时,必须指定 Y 和 Z 且只能是字符串标量。其中 Y 表示指定的旧列名,Z 是对应的新列名。分布式表不支持批量修改列名。
详情
-
对于向量,赋予其一个新标签。
-
对于矩阵、索引矩阵,给列(和行)添加标签。
-
对于表,替换表的列名。
例子
k = 3 6 9;
k.rename!(`rk);
// output
[3, 6, 9]
// 用函数 stat 获取统计信息是一种查看名字的方法
stat k;
// output
Median->6
Avg->6
Min->3
Stdev->3
Count->3
Size->3
Name->rk // k 的新标签
Max->9
m1 = 1..9$3:3;
m1
#0 | #1 | #2 |
---|---|---|
1 | 4 | 7 |
2 | 5 | 8 |
3 | 6 | 9 |
m1.rename!(`col1`col2`col3);
col1 | col2 | col3 |
---|---|---|
1 | 4 | 7 |
2 | 5 | 8 |
3 | 6 | 9 |
m1.rename!(1 2 3, `c1`c2`c3);
c1 | c2 | c3 | |
---|---|---|---|
1 | 1 | 4 | 7 |
2 | 2 | 5 | 8 |
3 | 3 | 6 | 9 |
m1 join k;
// 注意新的矩阵使用 k 的标签作为它的列标签。
c1 | c2 | c3 | rk | |
---|---|---|---|---|
1 | 1 | 4 | 7 | 3 |
2 | 2 | 5 | 8 | 6 |
3 | 3 | 6 | 9 | 9 |
t1=table(1..3 as x, 4..6 as y, 7..9 as z);
t1
x | y | z |
---|---|---|
1 | 4 | 7 |
2 | 5 | 8 |
3 | 6 | 9 |
t1.rename!(`a`b);
a | b | z |
---|---|---|
1 | 4 | 7 |
2 | 5 | 8 |
3 | 6 | 9 |
t1.rename!(`aa`bb`cc);
aa | bb | cc |
---|---|---|
1 | 4 | 7 |
2 | 5 | 8 |
3 | 6 | 9 |
t1.rename!(`bb`cc, `y`z);
aa | y | z |
---|---|---|
1 | 4 | 7 |
2 | 5 | 8 |
3 | 6 | 9 |
t1=table(1..3 as x, 4..6 as y, 7..9 as z, k);
t1
// 注意表使用了 k 的标签作为它的列名
x | y | z | rk |
---|---|---|---|
1 | 4 | 7 | 3 |
2 | 5 | 8 | 6 |
3 | 6 | 9 | 9 |
创建一个索引矩阵。
m = matrix(1..5, 11..15)
m.rename!(2020.01.01..2020.01.05, `A`B)
m1 = m.setIndexedMatrix!();
A | B | |
---|---|---|
2020.01.01 | 1 | 11 |
2020.01.02 | 2 | 12 |
2020.01.03 | 3 | 13 |
2020.01.04 | 4 | 14 |
2020.01.05 | 5 | 15 |
修改其行、列标签。
m1.rename!( "a" + string(1..5), `A1`A2)
若向量不遵循严格递增或包含重复值,则会报错。
m1.rename!( "a" + string(4 6 2 1 3), `A1`A2)
m1.rename!( "a""a""a""a""a", `A1`A2)
//Error: The label of an indexed matrix or series must be in strict ascending order.