如何使用Vega从7字段数据集中提取指定列?Aggregate方案显违和
Vega数据集列选择的最优实现方案
我有一个包含a、b、c、d、e、f、g共7个字段的数据集,需要转换为仅保留b、d、f三列的数据集。目前用Aggregate transform实现了需求,但只是单纯选列而非聚合,用这个方案显得很违和,当前代码如下:
{ "name": "selected_columns_data", "source": "dataset", "transform": [ { "type": "aggregate", "ops": [], "fields": [], "groupby": ["b", "d", "f"] } ] }
我的需求场景是让用户决定Vega表格中显示的列,求更优的实现方案。
更优实现方案
- 使用project transform,这是Vega专门用于选择、重命名或计算数据集列的转换类型,完全匹配单纯选列的需求,代码示例:
{ "name": "selected_columns_data", "source": "dataset", "transform": [ { "type": "project", "fields": ["b", "d", "f"] } ] }
- 如果需要支持用户动态选择列,可以把字段列表绑定到交互参数,结合信号(signal)来动态更新
project的fields值,示例如下:- 定义信号存储用户选择的列:
"signals": [ { "name": "selectedColumns", "value": ["b", "d", "f"], "bind": { "input": "select", "options": [["b", "d", "f"], ["a", "c"], ["b", "e", "g"]], "labels": ["列b、d、f", "列a、c", "列b、e、g"], "name": "选择显示列:" } } ]- 在transform中引用该信号:
{ "name": "selected_columns_data", "source": "dataset", "transform": [ { "type": "project", "fields": {"signal": "selectedColumns"} } ] }
内容的提问来源于stack exchange,提问作者Vlad
相关产品推荐
相关产品推荐

