当我在R控制台中使用下面的脚本时,它给我的输出是字符串“警告”。
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中尝试的代码片段。
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脚本警告和错误消息。
发布于 2011-12-14 18:40:55
根据我在将R集成到其他语言(rpy,耦合python和R)中的经验,我会将.NET中的R源代码的数量保持在最低限度。我的方法是在.R文件中编写一个函数,它可以做你想做的事情。
hello = function() { print("Hello World") } 将此函数保存在spam.r中允许您使用source将此新函数加载到在.NET中运行的R会话中。然后,您可以创建一个非常简单的R脚本:
source("spam.r")
hello()这当然是一个非常简单的例子,但是hello可能包含更复杂的代码。这样你就可以避免因为用.NET编写R代码而产生的任何错误(在rpy中有一些问题,例如data.frame是不允许的)。希望这能有所帮助!
https://stackoverflow.com/questions/8502165
复制相似问题