我想运行该功能
{`$安全X}
在列表上
order`KDB_SEC_ID
并返回失败的值列表.我有下面的,它有效,但我想知道是否有一种更简洁的方法来编写这个没有使用do循环.
示例代码:
idx:0;
fails:();
do[count (order`KDB_SEC_ID);
error:@[{`Security$x};(order`KDB_SEC_ID)[idx];0Nj];
if[error=0Nj;fails:fails,(order`KDB_SEC_ID)[idx]];
idx:idx+1;
];
missingData:select from order where KDB_SEC_ID in distinct fails;
Run Code Online (Sandbox Code Playgroud) 指定格式化表值的规则的最有效方法是什么?我想以最有效的方式将每个规则应用于其对应的列.我想在这种情况下使用函数形式会有所帮助.
这是示例表:
tbl:flip `GARP`longWgt`shortWgt`longWgtBeta`shortWgtBeta`longWgtRisk`shortWgtRisk`netWgt`netExposure`relativeBeta`relativeRisk`adjBeta`adjRisk!(`GARP_AUTOS_CA`GARP_BANKS_CA`GARP_CHEMICALS_CA`GARP_COMMUNICATIONS_CA`GARP_CONS_DISCR_CA;0.0091686 0.0176234 0.0076484 0.0131509 0.0460397;-0.010305 -0.0470135 0n -0.0078549 -0.0563819;1.3522162 0.6234817 1.3140238 0.7327634 1.1802914;0.1440806 0.7642193 0n 0.7216727 0.6112765;0.3254744 0.1573925 0.2541326 0.2554008 0.350877;0.3079491 0.2218098 0n 0.2594863 0.2758658;-0.0011365 -0.0293902 0.0076484 0.005296 -0.0103422;0.8897173 0.374857 0n 1.67422 0.8165681;9.3851363 0.8158414 0n 1.0153681 1.9308631;1.0569097 0.7095833 0n 0.9842553 1.2719117;8.3501184 -3.269856 0n 1.6999496 1.5766812;-1.0634328 -3.7595078 0n 1.64786 1.0386025)
Run Code Online (Sandbox Code Playgroud)
我希望所有列都有2个有效数字.该longWgt, shortWgt and netWgt列应以百分比.
我有类似的东西,但我确信有更好的方法:
tbl:update longWgt:100f*longWgt, shortWgt:100f*shortWgt, netWgt:100f*netWgt from tbl;
tbl:update .Q.f[2] each longWgt, .Q.f[2] each shortWgt, .Q.f[2] each longWgtBeta, .Q.f[2] each shortWgtBeta, .Q.f[2] each …Run Code Online (Sandbox Code Playgroud) 题:
给定 K 由非零、非负整数 1 到 K 组成,输出总和等于 K 的所有范围/区间。
例如,如果 K 等于 6,那么输出应该是[[1,3], [6,6]]。对于[1,3], 1+2+3 = 6 和 对于[6,6], 6 = 6。
我的解决方案
下面是我的解决方案,但我认为时间复杂度是 O(N2)。有没有更有效的方法来做到这一点?
def targetSum(k):
nums = list(range(1,k+1))
res = []
for end in range(len(nums)):
start = 0
while start <= end:
sumhere = sum(nums[start:end+1])
if sumhere == k:
res.append([nums[start], nums[end]])
start+=1
return res
targetSum(6)
Run Code Online (Sandbox Code Playgroud) 该meta表relevantOverrides如下:
security j
startDate d
endDate d
dataItem s
val f
Run Code Online (Sandbox Code Playgroud)
我有一个更新查询:
relevantOverrides:update val:163390j from relevantOverrides where security = 18767
Run Code Online (Sandbox Code Playgroud)
val列有一个float类型,但我需要将更新后的值作为整数插入.
我以JSON格式创建了一个配置文件,我想使用KDB来将其作为字典读取。
在Python中,非常简单:
with open('data.json') as f:
data = json.load(f)
Run Code Online (Sandbox Code Playgroud)
KDB中有类似的功能吗?
我想在KDB中创建一个函数,它可以根据用户输入的字符串格式将datetime对象转换为字符串.有没有办法在KDB中这样做?
在Python中,它将是这样的:
format = "%m-%d-%Y_%H%M%S"
def f(format, dt):
return dt.strftime(format)
Run Code Online (Sandbox Code Playgroud)