У меня есть скрипт на языке Perl (SFDRv166.pl, доступный здесь http://bit.ly/1DGmUTL), что я успешно запустить из командной строки с помощью:Выполнить PERL скрипт с аргументами в R
perl SFDRv166.pl -assoc input.txt -SFDR -out test
теперь мне нужно, чтобы запустить эту программу как часть из R сценария, и попытался ее реализации следующим образом:
arg1 <- shQuote("-assoc input.txt")
arg2 <- shQuote("-SFDR")
arg3 <- shQuote("-out test")
system("perl SFDRv166.pl arg1 arg2 arg3")
Однако я получаю ERROR: cannot find !
сообщение, генерируемое я считаю, потому что аргументы не получают передаются в сценарий Perl (выход не говорит нет входного или выходного файла , и никакой вывод не создается).
Я вижу из чтения документации для system()
, что аргументы с пробелами требуют специальной обработки, поэтому я попытался использовать shQuote()
. Не знаете, что еще может быть неправильно с моим подходом?
Используйте 'paste':' system (paste ("perl", "SFDRv166.pl", arg1, arg2, arg3)) ' – nicola
Посмотрите на источник для' xls2sep' в пакете gdata. Он вызывает perl с аргументами. –