我需要从python访问文本区域计算值而不首先使用JS或R脚本(我们不使用统计服务器)将值传输到文档属性。这可能吗?
开始之前:
我会问任何觉得这个问题不完整,格式不正确或标记不当的受访者请告诉我,以便我可以尝试解决这些问题。我正在研究一个有点敏感的项目,所以我在这里发布的一些内容是故意模糊的。在我与客户签署的NDA的基础上,我可以提供最完整的信息,以获取有关澄清问题的进一步信息的请求。
现在,要定义问题:
我使用计算值来确定数据表中已标记值和已过滤值之间的差异。 目的是传递给信息链接的结果参数的效率。我们使用了超过一百万行,并且每个标记行传递唯一值不是此数据量的选项。 我设计了一个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输入"并且计算值具有id" HierarchyCol5CV"将计算值转换为文档属性实际上在较小的体积数据集上起作用,但文本得到的数据集过大,特别是在层次结构和水平轴上具有较高基数的数据集上。 JS实际上将Spotfire冻结到一个完全没有反应的状态。
所以,真正的问题:
如何在python中调用文本区域计算值的.Value?我们没有使用统计服务器,因此R不是一个选项,JS上的开销使它基本上无法使用。 - 或者 - 是否有更有效的方法来完成所需的SQL where子句?
答案 0 :(得分:0)
据我所知,Open R不需要Stats Server,因此您应该能够在标记上使用R来获取计算值。