我需要首先使用 JS 或 R 脚本(我们没有使用统计服务器)从 python 访问文本区域计算值,以将值传输到文档属性。这可能吗?
在我开始之前:
我想请任何受访者认为这个问题不完整、格式不正确或标记不正确,请告诉我,以便我尝试纠正这些问题。我正在做一个有点敏感的项目,所以我在这里发布的一些内容是故意含糊的。鉴于我已与客户签署了保密协议(protocol),我将使用我所能提供的最完整的信息来解决为澄清问题而提供的更多信息的请求。
现在,定义问题:
我正在使用计算值来确定数据表中标记值和过滤值之间的差异。
目的是传递到信息链接的结果参数的效率。我们使用了超过一百万行,对于如此大量的数据,不能为每个标记行传递唯一值。
我设计了一个 python 脚本,可以根据交叉表的水平轴和垂直轴比较标记值和过滤值。有问题的值由文本区域计算值生成。表达式类似于:
Substitute(Substitute(UniqueConcatenate(
Substitute(
Concatenate([HierarchyCol1],"|",[HierarchyCol2],"|",[HierarchyCol3],"|",[HierarchyCol4],"|",[HierarchyCol5],"_-", [HorixontalAxisCol],
"_+",
Count(RowId()) OVER (Intersect([HierarchyCol1],[HierarchyCol2],[HierarchyCol3],[HierarchyCol4],[HierarchyCol5]))),",","^")),
", ",",+"),"^",",")
此特定表达式来自正在检查的层次结构的第 5 层。将有 2 个计算值共享此表达式。
一个是通过从页面过滤来限制数据的,另一个是受所讨论的可视化中使用的标记的限制。
这允许我传递导致 where 条件的参数,例如:
WHERE
[filteredColumn] in (...)
and
(
(
[HierarchyCol1] in (...)
AND
[HorixontalAxisCol] in (...)
)
or
(
[HierarchyCol2] in (...)
AND
[HorixontalAxisCol] in (...)
)
(
[HierarchyCol3] in (...)
AND
[HorixontalAxisCol] in (...)
)
(
[HierarchyCol4] in (...)
AND
[HorixontalAxisCol] in (...)
)
(
[HierarchyCol5] in (...)
AND
[HorixontalAxisCol] in (...)
)
)
使用 JS 像:
var oldValue5=0
transferValue = function(){
//get value from calcVal spotfire Calculated Value Dyn Item
value5=$("#HierarchyCol5CV").text().trim()
//update input when oldValue changes
if(value5!=oldValue5){
$("#HierarchyCol5DP input").val(value1).blur();
}
oldValue5=value5
}
setInterval(transferValue,1000) //1 time per second
其中输入字段的 id 为“HierarchyCol5DP input”,计算值的 id 为“HierarchyCol5CV”以将计算值放入文档属性实际上适用于较小的体积数据集,但文本变得太大了较大的数据集,特别是在数据集上在层次结构和水平轴上具有更高的基数。 JS 实际上将 Spotfire 卡住到完全没有响应的状态。
所以,真正的问题:
如何在python中调用文本区域计算值的.Value?我们没有使用统计服务器,所以 R 不是一个选项,而且 JS 的开销使它基本上无法使用。 -或- 是否有更有效的方法来完成所需的 SQL where 子句?
最佳答案
据我所知,Open R 不需要 Stats Server,因此您应该能够在标记上使用 R 来获得计算值。
关于ironpython - 如何从python访问计算值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40205693/