RStudio 和 TibcoSpotfire 之间的 R 脚本不一致

Inconsistencies of R scripts between RStudio and TibcoSpotfire

在为 Tibco SpotFire - build version 7.8.1.0.9 制作数据函数时 - 我使用 RStudio - R version 3.5.2 (2018-12-20) - 编写和调试函数,然后将我的代码复制到SpotFire 当我完成时。

有好几次,我注意到 R 代码在 RStudioSpotFire 之间的运行方式不一致。每当出现这些情况时,RStudio 生成的结果与在线 R 文档一致,而 SpotFire 生成的结果则不同。

我并没有跟踪示例,但我确实有最新的示例可用。下面是该数据函数的简化版本。它和它下面的段落比这个更理想post,但希望它能说明我一直遇到的问题类型。

# converts date strings "yyyy-MM-dd" to week number strings "yyyyww",
# where ww is the week number in the year (ISO 8601 convention.)
# dates is a vector (R) or column in a data table (SpotFire)
# containing strings, formatted as "yyyy-MM-dd". In SpotFire,
# the data type for the column is String, not Date.
Week <- strftime(dates, format="%Y%V")

Rstrftime 函数的文档 link 是 hereRStudio returns 值类似于 "201901",这是文档指出的 format 参数应该使用的值。 SpotFire returns 值如 "2019" - 根本没有周数信息,与文档相反。如果我将 format="%Y%V" 替换为 format="%Y%W"RStudio returns 值,如 "201900",这又是文档所指示的。据我所知,SpotFire returns 应该是 format="%Y%V" 的值 - 所以我猜它在内部以某种方式改变了输入。

我的基本问题是:我如何解决这类问题,我怎么知道 when/how SpotFire 会以某种奇怪的方式扰乱我的函数及其变量?例如,是否有 Tibco 使用的 R 的某些特殊版本未记录在案 R,或者是否有 Tibco 提供的文档说明它将如何在内部处理 R代码?

感谢您的帮助。

简短的回答是肯定的。 Spotfire 本机运行 TERR,这是 TIBCO 使用的 R 的特殊版本。 link 给出了主要区别,但并不详尽:R/4.4.0/doc/html/Differences_Between_TERR_and_R/differences.html

它们是两个独立的语言引擎。如果你 google 'TIBCO TERR' 你会发现很多信息。通过转到“工具”>“TERR 工具”,您可以在 Spotfire 中找到您 运行 的确切 TERR 版本。

您可以使用 RStudio 并将其指向计算机上安装 TERR 的位置,就像将其指向 R 安装的方式一样。通过这种方式,您可以验证您的代码是否符合您的预期。在这种情况下,似乎不支持 %V,但支持 %W。您也可以在 Spotfire 中使用开源 R,但是您需要一个统计服务器。

盖亚