Метод CreateNumeric Vector, выдающий ошибку с использованием R.NET в IronPython
Я использую R.NET в IronPython в Visual Studio 2012. Код ниже работает нормально:
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#, он работает нормально. Я гуглил это в течение некоторого времени и не могу найти никаких указателей. Любая помощь приветствуется.
1 ответ
Метод, который вы пытаетесь вызвать, является не реальным членом REngine, а методом расширения, как видно из источников. Если вы добавите следующее расширение импорта, оно будет работать должным образом:
from RDotNet import REngineExtension
clr.ImportExtensions(REngineExtension)