Метод 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)
Другие вопросы по тегам