2016-11-10 3 views
-1

Я пытаюсь выполнить R-скрипт из командной строки Access 2016. Сценарий читается в файле и генерирует график из значений внутри файла. Это хорошо работает, когда я запускаю его из Windows, 10 командной строки следующим образом:проблема с выполнением R-скрипта из командной строки Access 2016

C:\Program Files\R\R-3.3.2\bin>Rscript --vanilla H:\R\analyze.R H:\R\LCH_22.vcf 

Я хотел бы выполнить R сценарий с помощью кнопки в Access 2016.

Вот VBA скрипт, который я м с использованием:

Dim file_path As String 

file_path = "H:\R\LCH_22.vcf" 

Dim RetVal 
RetVal = shell("""C:\Program Files\R\R-3.3.2\bin\Rscript.exe"" --vanilla ""H:\R\analyze.R"" ""H:\R\LCH_22.vcf""", vbHide) 

MsgBox RetVal 

Сценарий выполняется, но генерирует пустой участок. Он имеет всю ось и метки, но все данные отсутствуют. Я не знаю, почему это происходит.

Последующие Я заменил vbHide с vbNormalFocus и был в состоянии генерировать график с данными ... да! Однако я не понимаю, почему замена переменной в команду Shell не работает. Не могли бы вы объяснить, как это сделать правильно? Я прочитаю имя файла из формы в Access, и эта часть кода должна быть динамической (см. Пример моей попытки ниже).

Dim file_path 
file_path = "C:\R\DNA.vcf" 
Dim RetVal 
RetVal = shell("""C:\Program Files\R\R-3.3.2\bin\Rscript.exe"" --vanilla ""C:\R\analyze.R"" "" & file_path & """, vbNormalFocus) 

Благодарим вас за помощь.

ответ

1

Просто добавьте еще одну пару кавычек вокруг file_path:

Dim file_path As String 
Dim RetVal As Integer 

file_path = "C:\R\DNA.vcf" 

RetVal = shell("""C:\Program Files\R\R-3.3.2\bin\Rscript.exe"" --vanilla "_ 
       & """C:\R\analyze.R"" """ & file_path & """", vbNormalFocus) 
Смежные вопросы