我正在构建跨数据集的关联选择经过-分组双变量图。这些图来自一个长格式表格(每行代表一个众数的 ID):</CODE></P>
<BR />
<BR />
<BR />
<PRE><CODE class=" language-jsl">dt << Bivariate(
Y( dt:Y ),
X( dt:X ),
By( :MODE )
);
我想要的效果:当我点击其中一个点时经过-分组图,我想要其他图中所有与该分组图共享相同点的点:ID也希望被选中。我希望在不将表格格式改为宽格式(每个 ID 一行)的情况下实现这一点。
我的尝试:我发现行状态处理程序可以重新选择所有匹配 ID 的行。我目前的实现:
f = Function( {row},
rows = dt << Get Selected Rows;
units = Associative Array( dt:ID[rows] ) << Get Keys;
dt << Select Where( Contains( units, :ID ) );
);
rs = dt << Make Row State Handler( f );
问题:此方法仅适用于数据表中的第一个选择。之后,处理程序就好像失效了一样。
我的问题:
1. 为什么行状态处理程序在第一次选择后就停止触发?(我怀疑是不是处理程序内部更改行状态导致了它停止运行。)
2. 是否有办法解决这个问题,使处理程序在重复选择时保持活动状态?
3. 是否存在更好的基于身份关联的跨领域选择方法经过我应该考虑的其他分组图吗?
提前致谢。
您很可能会收到一条日志消息,其中大致说明了发生了什么。
Loop detected earlier
有时候更有帮助
Row State Handler is in a loop
Row States should not be changed by Row State Handler.
使用双变量 + 按 + 堆叠数据表时,我一时想不出什么好办法。
使用拆分(宽)格式表格是最佳选择。如果您可以使用图表生成器绘制图表,则可以将其与公式结合使用,通过叠加/颜色来实现类似效果(不会选择行)。