繁体   English   中英

如何在 Spotfire 中显示 r 代码的进度

[英]How to show progress of r code in spotfire

有没有人找到一种方法来显示 Spotfire 中 r 代码的进度。 例如,它是如何进入 for 循环的。 所以代码在 Spotfire 之外的 r 中看起来像这样:

total <- 20
# create progress bar
pb <- txtProgressBar(min = 0, max = total, style = 3)
for(i in 1:total){
   Sys.sleep(0.1)
   # update progress bar
   setTxtProgressBar(pb, i)
   i
}

我很难想出一个解决方案,因为在程序完成之前,spotfire 没有 output 文本。 上面的例子没有产生任何可以观察到的东西。 关于如何在 Spotfire 中运行或创建进度条时从 r 代码中查看 output 文本的任何想法都会很棒。 谢谢你。

我看不到实时显示进度条的方法。 但是,如果您想了解代码执行的时间(完成后),您可以在循环中放置一些老式的打印语句,例如 print(paste(i,Sys.time())) 并启用数据 function 调试通过工具>选项>数据功能>启用数据 function 调试。 一旦您的数据 function 完成运行,您可以看到从通知面板打印的内容:出现黄色警告点,表明存在数据 function 调试 Z78E6221F6393D4356681DB3988F1。 我不确定在哪个版本的 Spotfire 中引入了此选项。 PS 在您的原始代码中,可以通过将 print(i) 替换为 i 来打印进度条,但它在 TERR/Spotfire 中并没有真正正确呈现,该段始终具有相同的长度。 我还没有尝试过使用进度条选项。

R 代码在另一个进程中运行,并在执行结束时将结果发送到 spotfire。 因此,您不能使用一个脚本来获得进度条。

做到这一点的唯一方法是使用多个脚本来更新文档属性txtProgressBar ,但请注意,这会使您的 spotfire 应用程序严重不可维护 每个脚本都应该负责工作的一部分,并且应该有一个虚拟文档属性。 每个文档属性都应该设置为一个脚本的 output,并作为下一个的输入。 每个脚本都应该设置自动刷新,并且应该更新文档属性以自动启动下一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM