0

我使用 R.Net 将 R 集成到 C# 程序。我有这个代码:

private void drawChart(REngine engine)
    {
        StringBuilder plotCommmand = new StringBuilder();
        plotCommmand.Append("sigmod = read.table(file=\"inproceedings.csv\", header=TRUE, sep=\"~\", quote=\"\", comment=\"\");");            
        Console.WriteLine(plotCommmand.ToString());
        engine.EagerEvaluate(plotCommmand.ToString());            
    }

运行程序时,我收到异常“应用程序错误”。在这一行:

engine.EagerEvaluate(plotCommmand.ToString());

请告诉我我的代码有什么错误?

4

2 回答 2

0

我通过替换此代码解决了我的问题:

plotCommmand.Append("sigmod = read.table(file=\"inproceedings.csv\", header=TRUE, sep=\"~\", quote=\"\", comment=\"\");");

经过:

plotCommmand.Append(@"sigmod <- read.table(file='C:\\Users\\admin\\Documents\\R\\inproceedings.csv', header=TRUE, sep='~', quote='', comment.char='');");
于 2013-09-10T08:43:16.193 回答
0

您正在使用 EagerEvaluate,这是一种过时的方法,表明您使用的是旧版本的 R.NET。以下代码适用于我,使用最新的代码库,我希望它与通过 NuGet 或https://rdotnet.codeplex.com/releases提供的最新版本同样适用

StringBuilder plotCommmand = new StringBuilder();
plotCommmand.Append("sigmod = read.table(file='c:/tmp/test.csv', header=TRUE, sep='~', quote='', comment='')");
Console.WriteLine(plotCommmand.ToString());
engine.Evaluate(plotCommmand.ToString());
engine.Evaluate("str(sigmod)");
于 2013-09-10T00:31:36.603 回答