我有一个perl脚本(SFDRv166.pl,此处为http://bit.ly/1DGmUTL),我使用以下命令行成功运行:
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()
的原因。不确定我的方法还有什么问题?
答案 0 :(得分:2)
试试这个:
arg1 <- "-assoc input.txt"
arg2 <- "-SFDR"
arg3 <- "-out test"
cmd <- paste("perl", "SFDRv166.pl", arg1, arg2, arg3)
system(cmd)
现在你不需要shQuate
。