KDB table 中的一个 drop/delete 列如何就位?
How can one drop/delete columns from a KDB table in place?
在 the documentation 之后,我尝试执行以下操作:
t:([]a:1 2 3;b:4 5 6;c:`d`e`f) // some input table
`a`b _ t // works: delete NOT in place
(enlist `a) _ t // works: delete NOT in place
t _:`a`b // drop columns in place does not work; how to make it to work?
// 'type
// [0] t _:`a`b
非常感谢您的帮助!
实现列删除的最简单方法是使用 qSQL:
t:([]a:1 2 3;b:4 5 6;c:`d`e`f)
delete a,b from `t
-- 在这里,t
之前的反引号使更改就位。
q)t
c
-
d
e
f
你应该可以使用
delete a,b from `t
就地删除(反引号表示就地)。
或者,为了更灵活,您可以使用函数形式;
![`t;();0b;`a`b]
迈克尔和凯尔已经介绍了 q-SQL 选项;为了完整起见,这里有几个其他选项使用 _
:
在您的问题中使用 _
,您可以将其重新分配给 t,例如
t:`a`b _ t
您还可以使用 .
修改一个空的索引列表,即“amend entire”,这可以通过传递 `t
或不通过仅通过 t
例如
q).[t;();`a`b _] / not in-place
c
-
d
e
f
q).[`t;();`a`b _] / in-place
`t
q)t
c
-
d
e
f
在 the documentation 之后,我尝试执行以下操作:
t:([]a:1 2 3;b:4 5 6;c:`d`e`f) // some input table
`a`b _ t // works: delete NOT in place
(enlist `a) _ t // works: delete NOT in place
t _:`a`b // drop columns in place does not work; how to make it to work?
// 'type
// [0] t _:`a`b
非常感谢您的帮助!
实现列删除的最简单方法是使用 qSQL:
t:([]a:1 2 3;b:4 5 6;c:`d`e`f)
delete a,b from `t
-- 在这里,t
之前的反引号使更改就位。
q)t
c
-
d
e
f
你应该可以使用
delete a,b from `t
就地删除(反引号表示就地)。
或者,为了更灵活,您可以使用函数形式;
![`t;();0b;`a`b]
迈克尔和凯尔已经介绍了 q-SQL 选项;为了完整起见,这里有几个其他选项使用 _
:
在您的问题中使用 _
,您可以将其重新分配给 t,例如
t:`a`b _ t
您还可以使用 .
修改一个空的索引列表,即“amend entire”,这可以通过传递 `t
或不通过仅通过 t
例如
q).[t;();`a`b _] / not in-place
c
-
d
e
f
q).[`t;();`a`b _] / in-place
`t
q)t
c
-
d
e
f