2

不知何故,我只能找到显示如何添加一列的示例。

所以我编写了这段代码,它可以工作,但我知道有一个更好的方法可以做到这一点:表 t 已经存在,其中的列填充了数据,我需要添加最初为空的新列。

 t: update column1:` from t;
 t: update column2:` from t;
 t: update column3:` from t;
 t: update column4:` from t;

我试着让它成为一个功能:

 colNames:`column1`column2`column3`column4;
 t:{update x:` from t}each colNamesList;

但这仅添加了一列并将其称为 x。

任何改进此代码的建议将不胜感激。我必须添加的不仅仅是 4 列,因此我的代码很长。谢谢!

4

1 回答 1

5

实现这一目标的各种方法......

q)newcols:`col3`col4;

q)@[tab;newcols;:;`]
col1 col2 col3 col4
-------------------
a    1
b    2
c    3

也可以指定不同的类型

q)@[tab;newcols;:;(`;0N)]
col1 col2 col3 col4
-------------------
a    1
b    2
c    3

或者做一个功能更新

q)![`tab;();0b;newcols!count[newcols]#enlist (),`]
`tab
于 2014-10-10T13:40:34.400 回答