RExcel如何执行R代码

时间:2014-10-16 23:12:59

标签: r excel excel-vba rexcel vba

我正在尝试使用Excel和Rexcel工具执行R代码。

我创建了一个按钮和一个关联宏,它执行以下代码:

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 个答案:

答案 0 :(得分:0)

没有看到谓词.R很难说出问题所在,但试试这个:

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。如果你正在使用大型matricies并且你想要更强大的代码可以更快地工作,我写了一个大函数,我可以在这里发布

    'RInterface.StopRServer    

我不会这样做,除非您不再为excel会话的其余部分再次运行任何R代码

End Sub