【问题标题】:RExcel How to execute a R codeRExcel 如何执行 R 代码
【发布时间】:2014-10-16 23:12:58
【问题描述】:

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

【问题讨论】:

  • 您似乎没有尝试打印它们。
  • 我不知道如何打印结果。我正在尝试使用“数组”,但它不起作用。
  • 他试图打印到 A24,这就是 GetArray 所做的。
  • 我的回答有帮助吗?如果是,请投票/接受,如果没有,请告诉我是否有问题。

标签: r excel rexcel vba


【解决方案1】:

没有看到 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多