使用rscript表达破折号

时间:2017-12-08 00:52:41

标签: r rscript

我正在使用rscript运行一些表达式,但我遇到了一些破折号的问题。一个简单的例子是:

$ rscript -e '-1'
ERROR: option '-e' requires a non-empty argument

添加括号可以解决问题(rscript -e (-1)),但我并不总是确定它们会被正确括起来。

documentation中说

  

使用-e选项时,请注意所使用的shell中的引用规则

所以我尝试对bash使用不同的引用规则,转义破折号或使用单引号但它仍然无效。

$ rscript -e "\-1"
Error: unexpected input in "\"
Execution halted

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:1)

你在这里误解了一部分。 “表达”是R可以解析的东西,即:

$ R --slave -e '1+1'
[1] 2
$

您使用-1点击的内容是一个极端情况。你可以做到

$ R --slave -e 'a <- -1; a'
[1] -1
$

$ R --slave -e 'print(-1)'
[1] -1
$

对于实际的参数解析,你想要一个像docopt这样的包(我喜欢和使用很多),或getopt(我之前使用过的)或optparse。所有人都在CRAN上。