Spotfire中计算列内值对出现频率的技术问询
在Spotfire中计算规则共现次数的简单方法
嘿,我帮你梳理下在Spotfire里实现这两种输出形式的简单操作,不用复杂脚本就能搞定!
形式一:成对规则的共现次数列表
这种形式需要先做自连接匹配同一ID下的不同规则,再统计次数:
添加自连接表
- 打开数据面板,右键点击你的数据源,选择「添加连接」
- 连接目标选同一个数据源,连接条件设置为
[ID] = [ID](确保只匹配同一个ID下的规则) - 连接完成后,把两个
Rule列分别重命名为Rule1和Rule2
生成规则对并去重
- 添加一个计算列,命名为
Couple,公式写:Concatenate([Rule1], "-", [Rule2]) - 添加筛选条件:
[Rule1] < [Rule2](这样既避免了a-b和b-a重复统计,也排除了a-a这类自身配对)
- 添加一个计算列,命名为
统计共现次数
- 创建一个汇总表(或交叉表),把
Couple拖到行,然后把ID拖到值区域,选择「计数(不同)」,这样就得到每个规则对的共现次数啦
- 创建一个汇总表(或交叉表),把
形式二:规则共现矩阵
这种矩阵形式用交叉表就能快速实现:
创建交叉表
- 拖入交叉表可视化,把
Rule字段同时拖到行和列区域
- 拖入交叉表可视化,把
设置单元格的共现次数计算
- 右键交叉表的单元格,选择「编辑表达式」,输入以下公式:
Count(Distinct [ID]) over (Intersect(Filter([Rule] = ${Axis.Rows}), Filter([Rule] = ${Axis.Columns}))) - 这个公式的作用是:统计同时包含行规则和列规则的唯一ID数量
- 右键交叉表的单元格,选择「编辑表达式」,输入以下公式:
隐藏自身配对(可选)
- 如果想去掉a-a、b-b这类对角线值,可以右键交叉表,选择「格式交叉表」,在「单元格」选项卡中设置对角线单元格的样式为隐藏,或者直接筛选掉行和列相同的项
这样操作下来,就能得到你想要的两种结果啦,都是用Spotfire自带的功能,不用额外写复杂代码~
内容的提问来源于stack exchange,提问作者V. Ang
相关产品推荐
相关产品推荐

