rename!

语法

rename!(X, Y, [Z])

参数

X 可以是向量、矩阵、索引矩阵、非共享内存表或分布式表(仅支持 OLAP 引擎)

  • X 是向量时,Y 是表示标签的字符串。

  • X 是矩阵、索引矩阵时,如果 Z 没有指定,则 Y 是列标签;如果 Z 指定了,Y 是行标签,而 Z 是列标签。列标签和行标签的长度分别需要等于 X 的列数和行数。YZ 可以是任意数据类型。

  • X 是非共享内存表时,YZ 是字符串标量或向量。如果 Z 没有指定,则 Y 从左到右是新的列名,用户应该确保新的列名的数量小于或等于表中列的总数;如果 Z 指定了,则 Y 是旧的列名,Z 是对应的新的列名。

  • X 是分布式表时,必须指定 YZ 且只能是字符串标量。其中 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.