如何在kdb中一次添加多个列?

如何在kdb中一次添加多个列?,kdb,q-lang,Kdb,Q Lang,不知何故,我只能找到一些示例来说明如何添加一列 所以我写了这段代码,很有效,但我知道有一种更好的方法: 表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`colum

不知何故,我只能找到一些示例来说明如何添加一列

所以我写了这段代码,很有效,但我知道有一种更好的方法: 表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列,因此我的代码非常长。谢谢大家!

实现这一目标的各种方法

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

非常感谢您的详细回复!我使用过函数更新,但是调用@[]的函数是什么?我想知道它的名字,这样我可以了解更多关于它的信息。它是“apply”函数(与q一起在封面下做一些有用的事情,例如将原子“填充到与表相同的长度)