rename!

语法

rename!(X, Y, [Z])

参数

1.30.20 新版功能: 参数 X 支持分布式表

X 可以是向量、矩阵、非共享内存表或分布式表。

  • 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);
[3, 6, 9]

// 用函数 stat 获取统计信息是一种查看名字的方法
$ stat k;
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