Rで実行されるVBAでスクリプトを作成しようとしていますが、VBAのシェルコマンドでRスクリプトを実行できましたが、引数を追加するとこれを実行できませんでしたコードに続きコマンドプロンプトシェルを介してVBAからRへ
はRを実行するために、私のVBAコードです:
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
Dim var1
Dim var2
Dim var3
var1 = Sheets("Command").Range("ticker").Value
var2 = Sheets("Command").Range("type").Value
var3 = Sheets("Command").Range("period").Value
path = "Rscript C:\Documents\RProjects\FA.R " & var1 & " " & var2 & " " & var3
errorCode = shell.Run(path, style, waitTillComplete)
以下は、私がRで実行しているコードです:
setwd("C:/Documents/RProjects/WorkingLibrary")
library(quantmod)
args = commandArgs(trailingOnly=T)
var1 = as.character(args[1])
var2 = as.character(args[2])
var3 = as.character(args[3])
x = getFinancials(var1)
Data = viewFinancials(get(x), type=var2, period=var3)
write.csv(Data,'TestData.csv')
csvファイルがダウンして保存されていないので、私は、これは失敗している知っていますしたがって、Rに引っ張られるデータはありません。変数を渡さずに、 "Hello World!"というようなRスクリプトを実行するだけでよい場合csvを保存します。しかし、可変引数を追加すると失敗します。 Rスクリプトの変数をハードコードすると、csvが動作するので、Rコードは健全ですが、コマンドラインで渡されたときに引数を拾わないことがわかります。
問題がVBA終了かR終了かどうかはわかりません。私は識別することができるすべての問題はどちらかであるということである。
1)コマンドラインの引数の受け渡し
2)R
3を引数の受け入れ)の両方の組み合わせ。
アイデア?ありがとう。