(q/kdb+)从保存在磁盘中的表中删除列

(q/kdb+)从保存在磁盘中的表中删除列,kdb,Kdb,我将下表保存在磁盘中 `:t/ upsert ([] v1:10 20 30; v2:1.1 2.2 3.3; v3:1 2 3) 例如,我如何删除第3列?这一行应该可以实现您希望执行的操作: `:/t/.d set `v1`v2 此外,您应该删除v3文件 希望有帮助 以下方法应该有效 `:t/set delete v3 from t tdbmaint.q是另一个选项: 这包括用于此目的的函数delete1col。可以这样使用: delete1col[tabledir;col] 在您的情况

我将下表保存在磁盘中

`:t/ upsert ([] v1:10 20 30; v2:1.1 2.2 3.3; v3:1 2 3)

例如,我如何删除第3列?

这一行应该可以实现您希望执行的操作:

`:/t/.d set `v1`v2
此外,您应该删除v3文件


希望有帮助

以下方法应该有效


`:t/set delete v3 from t t

dbmaint.q是另一个选项:

这包括用于此目的的函数delete1col。可以这样使用:

delete1col[tabledir;col]
在您的情况下,这将是:

delete1col[`:t/;`v3]

此脚本还包括许多其他功能,您可能会发现这些功能在将来会很有用。

请注意,delete1col函数既可以删除相关列文件,也可以适当修改.d文件。我通常认为最好不要删除该文件,只从.d文件中删除条目,这使得以后可以很容易地再次添加该列。要实现这一点,您可以简单地设置.os.del:{},然后使用delete1colin。这个选项的有趣之处在于,它还可以从驱动器中删除文件