使用R中的参数执行perl脚本

时间:2015-04-07 12:15:17

标签: r perl

我有一个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()的原因。不确定我的方法还有什么问题?

1 个答案:

答案 0 :(得分:2)

试试这个:

arg1 <- "-assoc input.txt"
arg2 <- "-SFDR"
arg3 <- "-out test"
cmd <- paste("perl", "SFDRv166.pl", arg1, arg2, arg3)
system(cmd)

现在你不需要shQuate