1

我是相当新docopt的用于在 R 中传递参数。

我有这样的事情:

#!/n/tools/script
##First read in the arguments listed at the command line
library(docopt)
require(methods)

"
Usage:
  Finding.R [options] FILE

  Description:   
  Options:
   --help                        Show this screen
   --version                     Show the current version.
   --Threshold=<Threshold>       [default: 250]
   --output=OUTPUT               [default: out.txt]
   --color=<color>               [default: FALSE]
  Arguments:
   FILE  The tree file
  " -> doc

  opt <- docopt(doc)

前 2 行来自之前的代码,其余的是关于我当前的工作。

我的问题是,当我运行它时,

Finding.R --Threshold 250 INPUT

而不是警告、错误或连贯的东西,我只是在另一个窗口中得到相同的脚本,就像什么都没发生一样。我认为这是我的选择问题,但后来我尝试了:

Finding.R --help

什么也没发生。

有人可以对此有所了解吗?当然我做错了什么,但是在浏览了很多网页之后,我找不到任何有用的东西。

4

1 回答 1

1

这里有两个潜在的问题。首先是您可能没有调用 R;第二个是你没有对你解析的选项做任何事情。下面是一个简单的示例:请注意,我们在第一行调用 Rscript,并在最后一行打印解析的选项。

#!/usr/bin/env Rscript 

library(docopt)
"Usage:
  Finding.R [options]

Options:
--Threshold=<Threshold>       [default: 250]
--output=OUTPUT               [default: out.txt]
--color=<color>               [default: FALSE]
" -> doc

opt <- docopt(doc)
print(opts) 

在命令行:

chmod +x Finding.R
./Finding.R
$`--Threshold`
[1] "250"

$`--output`
[1] "out.txt"

$`--color`
[1] "FALSE"

$Threshold
[1] "250"

$output
[1] "out.txt"

$color
[1] "FALSE"
于 2015-10-14T14:52:24.913 回答