在Unix脚本中,有没有办法在Unix脚本中使用参数运行R文件?
我知道要在该系统中运行R文件,您需要键入" R -f" file"但是你在R中需要什么代码,所以你需要在Unix上输入这个代码:
" R -f" file" arg1 arg2"
答案 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]
访问a
和args[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
然后退出。