首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用R.NET捕获R脚本抛出的警告

使用R.NET捕获R脚本抛出的警告
EN

Stack Overflow用户
提问于 2011-12-14 17:32:30
回答 1查看 513关注 0票数 1

当我在R控制台中使用下面的脚本时,它给我的输出是字符串“警告”。

代码语言:javascript
复制
jj = ts(scan("jj.dat"),  start=1960, frequency=4)  
tryCatch(arima(jj, 
         order = c(1, 0,1)), 
         warning=function(w) cat("Warning"))

我尝试在R.NET中使用相同的代码,并期望得到字符串"Warning",但我得到的解析器异常显示“代码错误”。下面是我在R.NET中尝试的代码片段。

代码语言:javascript
复制
try
{
   string script = "tryCatch(arima(jj, 
                             order = c(4, 0,6)), 
                             warning=function(w) cat(\"Warning\"))";
   string str=engine.EagerEvaluate("script").AsCharacter().First();//*
}catch (Exception ex)
{
}

请向我抛出一些想法,我们如何解决这个问题。或者,是否有其他方法可以捕获R.NET中的R脚本警告和错误消息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-14 18:40:55

根据我在将R集成到其他语言(rpy,耦合python和R)中的经验,我会将.NET中的R源代码的数量保持在最低限度。我的方法是在.R文件中编写一个函数,它可以做你想做的事情。

代码语言:javascript
复制
hello = function() { print("Hello World") } 

将此函数保存在spam.r中允许您使用source将此新函数加载到在.NET中运行的R会话中。然后,您可以创建一个非常简单的R脚本:

代码语言:javascript
复制
source("spam.r")
hello()

这当然是一个非常简单的例子,但是hello可能包含更复杂的代码。这样你就可以避免因为用.NET编写R代码而产生的任何错误(在rpy中有一些问题,例如data.frame是不允许的)。希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8502165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档