Проблемы с пробелами в путях при вызове командного файла из R
У меня есть некоторые проблемы, чтобы вызвать программу командной строки под названием molconvert из R, используяsystem()
в винде. Молконверт находится в"C:\Program Files\ChemAxon\MarvinBeans\bin"
Затем я хотел бы призватьsystem()
или жеshell()
подражать тому, что я достиг бы, набрав
molconvert pdb "C:\molecule conversions\cembrene A.mol"
в командной строке и получить полученный результат обратно в R, как в
out=system(...,intern=T)
Кажется, у меня проблемы с обратными слешами и пробелами в дорожках. Я пробовал с
dirmolconvert="C:\\Program Files\\ChemAxon\\MarvinBeans\\bin"
shell(shQuote(paste(dirmolconvert,"\\molconvert pdb "C:\\cembrene A.mol",sep="")))
но это дает мне «Ошибка: неожиданный символ в ...» и выход из «также не помогает. Любые мысли о том, как я должен решить эту проблему?
или же
system(paste(dirmolconvert,"\\molconvert pdb \"C:\\cembrene A.mol\"",sep=""), intern=T)
но это дает мне
'C:\Program' not found
есть идеи?
Изменить: на основе ответа ниже правильный способ сделать это, по-видимому,
inputdir="C:/Users/Ento/Documents/GCMS/molconvert test"
molconvertdir="C:/Program Files/ChemAxon/MarvinBeans/bin"
molecule="cembrene A.mol"
out=system(paste(shQuote(file.path(molconvertdir, "molconvert.bat")),
"pdb",
shQuote(file.path(inputdir,molecule))),intern=T)