小编Ril*_*Hun的帖子

KDB:尝试捕获列表并返回失败列表

我想运行该功能

{`$安全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)

error-handling controls try-catch kdb

1
推荐指数
1
解决办法
330
查看次数

KDB +:格式化表中的值

指定格式化表值的规则的最有效方法是什么?我想以最有效的方式将每个规则应用于其对应的列.我想在这种情况下使用函数形式会有所帮助.

这是示例表:

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)

formatting tabular kdb display

1
推荐指数
1
解决办法
408
查看次数

Python:输出总和为目标总和的所有范围

题:

给定 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)

python arrays algorithm data-structures

1
推荐指数
1
解决办法
81
查看次数

KDB +:如何使用不同类型的另一个值更新表中的值

metarelevantOverrides如下:

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类型,但我需要将更新后的值作为整数插入.

types kdb

0
推荐指数
1
解决办法
352
查看次数

KDB:如何解析json文件?

我以JSON格式创建了一个配置文件,我想使用KDB来将其作为字典读取。

在Python中,非常简单:

with open('data.json') as f:
    data = json.load(f)
Run Code Online (Sandbox Code Playgroud)

KDB中有类似的功能吗?

parsing json dictionary kdb

0
推荐指数
1
解决办法
833
查看次数

KDB:如何将DateTime转换为格式化字符串?

我想在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)

string format datetime kdb

0
推荐指数
1
解决办法
224
查看次数