我正在使用 R.net 并尝试调用用 R 编写的函数。
这是我在视觉工作室的代码
var myfnc = _engine.Evaluate("source('.....CalculateCost.R')").AsCharacter();
var _uid = _engine.CreateCharacter(uid);
var arr = _engine.CreateIntegerVector(ids.Length);
var _batchGuid = _engine.CreateCharacter(batchId);
var ss = _engine.Evaluate(myfnc[0]).AsFunction();
ss.Invoke(new SymbolicExpression[] { arr, _uid, _batchGuid });
//_engine has been initialized in the constructor
上面的代码将生成一个图并保存在一个文件夹中。而已。
问题:它在大多数情况下都很好用。但有时它会引发以下错误。
Error in structure(.External(.C_dotTclObjv, objv), class = "tclObj") :
[tcl] out of stack space (infinite loop?).
at RDotNet.Function.evaluateCall(IntPtr call)
at RDotNet.Function.createCallAndEvaluate(IntPtr argument)
at RDotNet.Function.InvokeOrderedArguments(SymbolicExpression[] args)
at RDotNet.Closure.Invoke(SymbolicExpression[] args)
at SmartPoolApp.Helpers.RStuffGenerator.ExecuteCostCalculation(Int32[] ids, String uid, String batchId) in k:\Repositories\myprogram\Helpers\RStuffGenerator.cs:line 157
在第 57 行,我有以下代码:
ss.Invoke(new SymbolicExpression[] { arr, _uid, _batchGuid });
我只是不知道如何解决它,它甚至意味着什么!任何帮助将不胜感激。
编辑:
我从一个 asp.net mvc web 应用程序运行它。它第一次工作,当我刷新几次时,它就坏了。