2017-09-24 8 views
1

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を引数の受け入れ)の両方の組み合わせ。

アイデア?ありがとう。

答えて

4

私はばかです。私の道は間違っていた。このコードは完全に機能し、夢のような変数を渡します。誰かがこのコードを類似のプロジェクトに参照または使用したい場合は、自由に行うことができます。適切なファイルパスがあることを確認してください:P

関連する問題