You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从sym列提取单词首字母,生成带唯一标识的derived列?

解决方案

针对从事件表生成唯一短符号的需求,用KDB+可以按以下步骤实现:

核心思路

  1. 提取首字母组合:将sym列的每个事件名称按空格拆分,提取各单词首字母并拼接成大写字符串;
  2. 保证唯一性:对重复的首字母组合,为后续出现的条目添加递增序号作为前缀(首次出现无序号,第二次加1,第三次加2,以此类推)。

完整实现代码

// 先对原表按sym去重,得到唯一事件表
uniqueTab: select by sym from tab;

// 提取每个事件名称的首字母组合,统一转为大写
uniqueTab: update base: upper raze first each split sym from uniqueTab;

// 为重复的首字母组合添加序号前缀,生成唯一的derived列
uniqueTab: update derived: $[i=0; base; string[i], base] by base from uniqueTab;

// 查看最终结果(展示原事件名和对应的短符号)
select sym, derived from uniqueTab

代码细节说明

  • split sym:把事件名称按空格拆分成单词列表;
  • first each split sym:提取每个单词的首字母;
  • upper raze ...:将首字母列表拼接成字符串并转为大写,确保格式统一;
  • by base:按首字母组合分组,每组内的i是从0开始的索引;
  • $[i=0; base; string[i], base]:每组第一个条目保留原首字母组合,后续条目添加对应序号作为前缀,保证derived列值唯一。

示例效果

比如假设有两个首字母组合均为FBS的事件:

  • 第一个事件"Fed Barkin Speech"的derived值为"FBS";
  • 第二个事件(如"Fed Brown Speech")的derived值为"1FBS",以此类推。

内容的提问来源于stack exchange,提问作者BlackPearl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:07:40