【问题标题】:Execute perl script with arguments in R在 R 中使用参数执行 perl 脚本
【发布时间】: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。

标签: r perl


【解决方案1】:

试试这个:

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

现在你不需要shQuate

【讨论】:

    猜你喜欢
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    相关资源
    最近更新 更多