使用VBA调用R代码

时间:2015-03-06 13:58:53

标签: r excel vba csv

我正在开发一个项目,我需要使用VBA作为前端来调用R作为后端。显然,没有错误警告,但我没有得到我的输出。

基于VBA,我要求R读取外部csv文件,然后将表csv写为输出。但它没有完成这项工作。

这是我的代码VBA和R.

VBA ####

Sub RunRscript()
    'runs an external R code through Shell
    'The location of the RScript is 'C:\R_code'
    'The script name is 'hello.R'

    Dim shell As Object
    Set shell = VBA.CreateObject("WScript.Shell")
    Dim waitTillComplete As Boolean: waitTillComplete = True
    Dim style As Integer: style = 1
    Dim errorCode As Integer
    Dim path As String
    path = "RScript ""I:\des\Perso\Xiaofei\try.R"""
    errorCode = shell.Run(path, style, waitTillComplete)

End Sub

[R #####

a <- read.table("German_ZCY_frombloomberg.csv",sep = ",",header = TRUE)
a <- data.frame(a)

write.table(a,"I:/des/Perso/Xiaofei/hello.csv", quote = FALSE, row.names  =FALSE, col.names = TRUE, sep = ";")

我不知道问题出在哪里,因为没有警告发生。但我看不到csv文件&#34; hello.csv&#34;创建

另一方面,如果我使用另一个R代码简单地将一个短语写入带有以下代码的文本文件中,它就能很好地工作(VBA能够让R完成工作)

[R ##

 sink('I:/des/Perso/Xiaofei/hello.txt',append=F,type="output")
 cat('Hello World')
 var1<-5^3
 var2<-7^3
 cat('\nThe result of adding',var1,'to',var2,'is',var1+var2)
 sink(NULL)

你能帮我解决这个问题吗?非常感谢,

致以最诚挚的问候,

非,

0 个答案:

没有答案