4

我在 Visual Studio 2012 的 IronPython 中使用 R.NET。下面的代码可以正常工作:

import clr
from System import *
from System.IO import *
clr.AddReferenceToFileAndPath("C:\\PythonDev\\MSP_Script\\Python\\MSP_Script\\RDotNet.dll")

from RDotNet import *

envPath = Environment.GetEnvironmentVariable("PATH")

rBinPath = "C:\\Program Files\\R\\R-3.0.2\\bin\\i386"
Environment.SetEnvironmentVariable("PATH", envPath + Path.PathSeparator + rBinPath)

engine = REngine.CreateInstance("RDotNet")
engine.Initialize()

group2 = engine.Evaluate("group2 <- c(29.89, 29.93, 29.72, 29.98, 30.02, 29.98)")

但是只要我添加以下代码行:

group1 = engine.CreateNumericVector((30.02, 29.99, 30.11, 29.97, 30.01, 29.99))

我收到错误“AttributeError:‘REngine’对象没有属性‘CreateNumericVector’”

如果我在 C# 中运行相同的代码,它工作正常。我已经用谷歌搜索了一段时间,但找不到任何指针。任何帮助将非常感激。

4

1 回答 1

2

您尝试调用的方法不是REngine的实际成员,而是在源代码中看到的扩展方法。如果您添加以下扩展导入,它将按预期工作:

from RDotNet import REngineExtension
clr.ImportExtensions(REngineExtension)
于 2014-02-09T16:12:57.227 回答