0

我正在尝试使用带有 Rexcel 工具的 Excel 执行 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 代码的变量。执行不会引发错误,但我看不到结果!

4

1 回答 1

0

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

Sub button()
    RInterface.StartRServer 

这应该在子 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    

我不会这样做,除非你不打算在剩下的 excel 会话中再次运行任何 R 代码

End Sub
于 2014-10-22T12:30:50.187 回答