在Unix中使用参数

时间:2017-02-16 22:40:57

标签: r unix parameters arguments

在Unix脚本中,有没有办法在Unix脚本中使用参数运行R文件?

我知道要在该系统中运行R文件,您需要键入" R -f" file"但是你在R中需要什么代码,所以你需要在Unix上输入这个代码:

" R -f" file" arg1 arg2"

2 个答案:

答案 0 :(得分:1)

这是一个例子。将此代码保存在test.R中:

#!/usr/bin/env Rscript
# make this script executable by doing 'chmod +x test.R'
help = cat(
"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Help text here
Arguments in this order:
    1) firstarg
    2) secondarg
    3) thirdarg
    4) fourtharg
./test.R firstarg secondarg thirdarg fourtharg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\n\n")

# Read options from command line
args = commandArgs(trailingOnly = TRUE)
if(is.element("--help", args) | is.element("-h", args) | is.element("-help", args) | is.element("--h", args)){
    cat(help,sep="\n")
    stop("\nHelp requested.")
}

print(args)

chmod +x test.R 然后使用./test.R a b c d调用它。它应该打印:[1] "a" "b" "c" "d"

您可以通过args[1]访问aargs[4]来访问d来访问每个参数。

答案 1 :(得分:0)

使用Rscript的建议似乎很有用,但可能不会被问到什么。也可以使用获取源的输入文件从命令行启动R. R解释器也可以在该模式下访问commandArgs。这是一个最小的" ptest.R"我的用户目录中的文件也是我的默认工作目录:

//line comment

从Unix命令行我可以做到:

ca <- commandArgs()
print(ca)

R打开,显示常用的启动消息并宣布由$ r -f ~/ptest.r --args "test of args" 加载的包然后:

.Rprofile

然后退出。