【问题标题】:How do I join symbols in KDB?如何在 KDB 中加入符号?
【发布时间】:2021-07-21 13:21:28
【问题描述】:

我在路径中有一个文件:

:/equities/AAPL.csv

我想要一个函数

f(`AAPL)

返回完整的文件处理程序,包括.csv

我尝试过使用:

.Q.dd[`:/equities]`AAPL

返回:/equities/AAPL,但我似乎无法获得.csv 部分。

我也很高兴使用原语而不是 Q 包(因为这只是为了学习)。

谢谢!

【问题讨论】:

    标签: kdb


    【解决方案1】:

    这是一种基于sv的简单方法:

    q){` sv y,x}/[`csv`AAPL`:/equities]
    `:/equities/AAPL.csv
    

    一个更通用的多输入方法是:

    q)f:{` sv'x,'` sv'z,\:y}[`:/equities;`csv;](),
    q)f`AAPL`IBM
    `:/equities/AAPL.csv`:/equities/IBM.csv
    

    【讨论】:

    • 非常感谢,这太棒了!如果您不介意,您能否解释一下它是如何工作的(用英语)?我正在努力学习并在语法上苦苦挣扎(我正在尝试自己从碎片中构建它,所以我完全理解)。
    • sv的两个应用,一个` sv`AAPL`csv生成`AAPL.csv,另一个` sv`:/equities,`AAPL.csv生成`:/equities/AAPL.csv。第一种方法同时使用svs 使用over (/)。第二种方法显式地应用 svs 并使用一些 each (') 以使其应用于多个输入
    • 太棒了,我现在明白了!非常感谢您的帮助,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多