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
代码在 RStudio
和 SpotFire
之间的运行方式不一致。每当出现这些情况时,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")
R
的 strftime
函数的文档 link 是 here。 RStudio
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,但是您需要一个统计服务器。
盖亚
在为 Tibco SpotFire
- build version 7.8.1.0.9
制作数据函数时 - 我使用 RStudio
- R version 3.5.2 (2018-12-20)
- 编写和调试函数,然后将我的代码复制到SpotFire
当我完成时。
有好几次,我注意到 R
代码在 RStudio
和 SpotFire
之间的运行方式不一致。每当出现这些情况时,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")
R
的 strftime
函数的文档 link 是 here。 RStudio
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,但是您需要一个统计服务器。
盖亚