是否可对多列表格使用ungroup函数执行拆分组操作?
结论
你给出的q数据表可以正常使用ungroup函数执行拆分组操作。
原因说明
q语言的ungroup对输入表的规则要求为:同一行内所有列表类型的列的元素长度必须一致,原子类型的列会自动按同行列表列的长度广播复制,无需额外处理。
对照你的数据表逐行校验:
- 第一行:
col1(长度1的列表)、col2(原子)、col3(长度1的列表),所有列等效长度均为1,符合要求 - 第二行:
col1(长度2的列表)、col2(原子,可广播为长度2)、col3(长度1的列表,可广播为长度2),符合要求 - 第三行:
col1(原子,可广播为长度3)、col2(原子,可广播为长度3)、col3(长度3的列表),符合要求
实际运行验证
你可以直接执行以下代码验证结果:
// 先定义你的原始表 t:flip`col1`col2`col3!((enlist`na;(`na`emea);`na);`test1`test2`test3;(enlist`uat;enlist`prd;(`uat`prd`dr))) // 执行ungroup ungroup t
运行后输出结果如下:
col1 col2 col3 --------------- na test1 uat na test2 prd emea test2 prd na test3 uat na test3 prd na test3 dr
内容的提问来源于stack exchange,提问作者user10165841
相关产品推荐
相关产品推荐

