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

时间:2014-10-10 13:14:43

标签: 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`column4;
 t:{update x:` from t}each colNamesList;

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

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

1 个答案:

答案 0 :(得分:3)

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

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