在Rdotnet中使用R Engine时出现异常

时间:2016-07-12 13:57:57

标签: c# r r.net

我已经通过NuGet包管理器安装了R.NET.Community并添加了以下代码(以便开始)但我在Rengine.SetEnvironmentVariables()行时遇到错误;代码甚至没有前进。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RDotNet;

namespace WF_CRM_R
{
    public class CrmLogic
    {
        public void GetCrmOutput(Dictionary<int, List<double>> crmInput)
        {
            REngine.SetEnvironmentVariables();
            REngine engine = REngine.GetInstance();

            double[,] input = new double[crmInput[0].Count, crmInput.Count];

            for (int i = 0; i < crmInput.Values.Count; i++)
            {
                for (int j = 0; j < crmInput.Count; j++)
                {
                    input[i, j] = crmInput[crmInput.Keys.ElementAt(i)].ElementAt(j);
                }
            }
            var rMatrix = engine.CreateNumericMatrix(input);
            engine.SetSymbol("my.data.matrix.inj", rMatrix);
            engine.Evaluate("source('D:/R/Learning R/CRM_TestData_R_Ver5.R')");
            var output = engine.GetSymbol("my.data.matrix.inj").AsNumeric();
        }
    }
}

错误截图在这里。 enter image description here

这是一个简单的测试Rdotnet,我无法理解什么是错的!

1 个答案:

答案 0 :(得分:1)

我快速浏览了R.NET的文档,发现了以下内容:

  在Windows上,

SetEnvironmentVariables查看注册表设置   由R安装程序设置。

因此,我认为您需要首先安装R才能使用R.NET。我的猜测是R本身没有安装(正确)。