gpt4 book ai didi

r - 在带有数组的 VBA 函数中使用 RInterface.GetArrayToVBA

转载 作者:行者123 更新时间:2023-12-04 20:17:04 25 4
gpt4 key购买 nike

让一个 Excel 电子表格通过 RExcel 连接到 R并且您想编写一个调用一些 R 函数的 VBA 函数。

在您的 Excel 电子表格中,您有几个简单的数组,如下所示:

enter image description here

代码可能是这样的:

Function foo(x As Range, y As Range) As Variant

RInterface.StartRServer

If IsNumeric(x) = True Then
RInterface.PutArrayFromVBA "x", x
End If

If IsNumeric(y) = True Then
RInterface.PutArrayFromVBA "y", y
End If

foo = RInterface.GetArrayToVBA("cbind(x, y, y ^ x)")

End Function

其明显目的是返回一个包含 cbind(x, y, y ^ x) 的矩阵在 Excel 中。

我无法得到它,当我稍微修改代码时,我得到了奇怪的结果:有时输出等于 1 , 有时等于 #VALUE! ...但是,它不起作用,而且我无法理解这种情况下所需的语法。

最佳答案

Function foo(x As Range, y As Range) As Variant

RInterface.StartRServer
RInterface.PutArrayFromVBA "x", x.Value 'you were missing this .Value'
RInterface.PutArrayFromVBA "y", y.Value
foo = RInterface.GetArrayToVBA("cbind(x, y, y ^ x)")

End Function

我省略了您的错误检查,因为它们只会导致其他错误。如果要进行错误检查,请执行 on error goto

关于r - 在带有数组的 VBA 函数中使用 RInterface.GetArrayToVBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21021417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com