kdb - 计算一组值的前 x 个整数
问题描述
我想从 1 开始计数 Y 的出现次数,直到其后续值为 N。可以在下面找到一个简单的示例表,我添加了一个名为预期输出的附加列以突出显示我正在尝试的内容达到。
tab:([]x:`N`N`Y`N`N`Y`Y`Y`N`N`Y`Y`Y;expected_output:0 0 1 0 0 1 2 3 0 0 1 2 3)
我一直在尝试使用 cut 的想法(假设我可以找到正确的索引)我可以拆分表格,获取每个列表的计数,然后以某种方式将它们拼凑在一起,例如
0 2 3 5 8 10 cut tab
解决方案
无需扫描即可接近,不像特里那样整洁,但在较大的选项卡上应该更快。
q)update o:{a+r-maxs differ[x]*r:sums a:`Y=x}x from tab
x expected_output o
-------------------
N 0 0
N 0 0
Y 1 1
N 0 0
N 0 0
Y 1 1
Y 2 2
Y 3 3
N 0 0
N 0 0
Y 1 1
Y 2 2
Y 3 3
推荐阅读
- ios - iOS:根据分发证书生成苹果开发者证书
- xamarin.forms - 如何在 xamarin 表单中使用 kindle uri 方案?
- python - POST 请求不发送会话 cookie
- sql - sql server bcp export binary in csv,如何用''替换它?
- amazon-web-services - 如何在Route53中同一域下的不同EC2实例中配置两个不同的应用程序?
- c# - 如何退出 Mono 服务?
- reactjs - React styled-components 导航栏样式不起作用
- python - Django 用 python-magic (libmagic) 来验证上传的文件
- python - 数据帧很慢
- c# - 如何将简单的身份验证要求映射到 AspNetCore 身份验证/身份验证概念