【发布时间】:2021-07-21 13:21:28
【问题描述】:
我在路径中有一个文件:
:/equities/AAPL.csv
我想要一个函数
f(`AAPL)
返回完整的文件处理程序,包括.csv。
我尝试过使用:
.Q.dd[`:/equities]`AAPL
返回:/equities/AAPL,但我似乎无法获得.csv 部分。
我也很高兴使用原语而不是 Q 包(因为这只是为了学习)。
谢谢!
【问题讨论】:
标签: kdb
我在路径中有一个文件:
:/equities/AAPL.csv
我想要一个函数
f(`AAPL)
返回完整的文件处理程序,包括.csv。
我尝试过使用:
.Q.dd[`:/equities]`AAPL
返回:/equities/AAPL,但我似乎无法获得.csv 部分。
我也很高兴使用原语而不是 Q 包(因为这只是为了学习)。
谢谢!
【问题讨论】:
标签: kdb
这是一种基于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 (') 以使其应用于多个输入