【发布时间】:2015-04-07 20:18:59
【问题描述】:
我有一个 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() 的原因。不确定我的方法还有什么问题?
【问题讨论】:
-
使用
paste:system(paste("perl","SFDRv166.pl",arg1,arg2,arg3)) -
查看 gdata 包中
xls2sep的源代码。它使用参数调用 perl。