"source()" не выполняется

Я пытаюсь написать визуальный интерфейс для некоторых R-скриптов, используя R.NET, C# и Visual Studio. Скрипты R отлично работают при их выполнении на RStudio. Это код, который создает проблемы:

StartupParameter rinit;

private void Form1_Load(object sender, EventArgs e)
{
    rinit = new StartupParameter();
    rinit.Quiet = true;
    rinit.RHome = "C:/Program Files/R/R-3.4.0";
    rinit.Interactive = true;

    REngine engine= REngine.GetInstance();
    REngine.SetEnvironmentVariables(@"C:\Program Files\R\R-3.4.0\bin\i386", @"C:\Program Files\R\R-3.4.0");

    engine.Evaluate("source('../../rsc/Rscripts/CargarPaquetes.r')");
    engine.Evaluate("source('../../rsc/Rscripts/IntroducirDatos.r')");
    engine.Evaluate("source('../../rsc/Rscripts/UnirTablas.r')");
    engine.Evaluate("PorcentajeEnfermedades<- prop.table(table(TablaTotal$Enfermedad))*100");

    var Porcentajes = engine.Evaluate("cbind(Frecuencia=table(TablaEntrenamiento$Enfermedad),Porcentaje=PorcentajeEnfermedades)").AsCharacter().ToArray();

    MessageBox.Show(Convert.ToString(Porcentajes[0]));

    engine.Dispose();
}

Некоторый код может быть ненужным, я совсем не понимаю, как работает R.NET, и документации не так много. Программа не перестает работать, и я не получаю никаких сообщений об исключениях, но MessageBox никогда не появляется. Когда я выполняю код шаг за шагом, я вижу, что код выполняется только с самого начала engine.Evaluate(@"source('../../rsc/Rscripts/CargarPaquetes.r')");(Включено). Остальные строки никогда не выполняются, и я не могу понять, почему.

Кстати, если бы кто-то мог порекомендовать мне какой-нибудь хороший сайт документации для R.NET, я был бы очень признателен.

----РЕДАКТИРОВАТЬ----

Я создал кнопку и переместил весь этот код в событие click, и теперь программа останавливается и показывает следующую ошибку:

RDotNet.EvaluationException: 'Error in library(caret) : there is no package called 'caret'

Скрипт "CargarPaquetes.r" в основном загружает набор пакетов. Я перешел с R 3.5 на R 3.4, потому что R.NET дал некоторые проблемы в более новой версии... и теперь мне приходится иметь дело с некоторыми плохо установленными пакетами.

Несмотря на решение проблемы, было бы интересно выяснить, почему исключение не было вызвано в событии Load.

0 ответов

Другие вопросы по тегам