RExcel Как выполнить код R

Я пытаюсь выполнить код R с помощью Excel с помощью инструмента Rexcel.

Я создал кнопку и связанный макрос, который выполняет следующий код:

Sub button()
    RInterface.StartRServer
    RInterface.RunRFile "C:/Users/fran21/Downloads/R_NYSE_Hadoop/predicciones.R"
    RInterface.GetArray "array", Range("A24")
    RInterface.StopRServer    
End Sub

Я использую RunRFile для выполнения моего R-кода и GetArray, чтобы попытаться показать переменную моего R-кода. Выполнение не вызывает ошибок, но я не вижу результатов!

1 ответ

Не видя прогнозы. Трудно сказать, в чем проблема, но попробуйте это:

Sub button()
    RInterface.StartRServer 

Это должно быть сделано в sub auto_open или иным образом отдельно. Вы не хотите, чтобы R запускался каждый раз при запуске такого макроса.

    RInterface.rrun "source('C:/Users/fran21/Downloads/R_NYSE_Hadoop/predicciones.R')"
    RInterface.rrun "print('array')" 

печать только для проверки, это не обязательно

    Range("A24") = RInterface.GetRExpressionValueToVBA("array") 

Просто для улучшения скорости. Если это не работает, попробуйте getarray снова. Если вы работаете с большими матрицами и вам нужен более надежный код, который работает быстрее, я написал большую функцию, которую можно опубликовать здесь

    'RInterface.StopRServer    

Я бы не стал этого делать, если вы не собираетесь снова запускать R-код до конца сессии Excel

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