如何在RExcel宏中将值从VBA变量传递给R.

时间:2015-03-20 21:57:27

标签: excel vba rexcel

我是编写RExcel宏的新手,我有一个问题。我通过InputBox()从宏中获取用户输入。输入是整数。然后我想将此整数值传递给R。

这是我的尝试:

Option Explicit
Sub KMeansClustering()
Dim k As Integer
RInterface.PutDataframe "mydata", Selection
RInterface.RRun "testdata <- na.omit(mydata)"
RInterface.RRun "testdata <- scale(testdata)"
k = InputBox("Enter k")    
' Supply data from VBA k variable to k R variable
RInterface.RRun "fit <- kmeans(testdata, k)"
RInterface.RRun "aggregate(testdata,by=list(fit$cluster),FUN=mean)"
RInterface.RRun "result <- data.frame(testdata, fit$cluster)"
End Sub

1 个答案:

答案 0 :(得分:0)

在使用之前&#34; k&#34;在R中,您必须首先将值传递给R变量(数组):

Rinterface.PutArrayFromVBA(&#34; k_value&#34;,k) Rinterface.RRun&#34; fit&lt; - kmeans(testdata,k_value)&#34;