我有一个bash脚本执行某些操作然后调用Rscript。这里有一个简单的例子来说明:
test.sh:
Rscript test.r
test.r:
args <- commandArgs()
print(args)
如何在R打印hello中使用./test.sh hello
命令行结果?
答案 0 :(得分:4)
你可以让bash将所有参数传递给R脚本,使用类似的东西来表示bash脚本:
#!/bin/bash
Rscript /path/to/R/script --args "$*"
exit 0
然后,您可以选择需要在R中删除多少来自$ *的参数。
答案 1 :(得分:2)
我注意到处理这个问题的方法是:
<强> test.sh:强>
Rscript test.r $1
<强> test.r:强>
args <- commandArgs(TRUE)
print(args)
$1
表示传递给bash脚本的第一个参数。
当调用commandArgs()
而不是commandArgs(TRUE)
时,它不会从bash传递,而是会打印内部调用的其他参数。
答案 2 :(得分:0)
关于asb的回答:
在bash脚本行中使用“--args”不起作用,“ - args”被视为我要传递到R脚本的真实参数的字面值。把它拿出来工作,即“Rscript /path/to/my/rfile.R arg1 arg2”
bash版本:GNU bash,版本3.2.25(1)-release(x86_64-redhat-linux-gnu) Rscript版本:R脚本前端版本3.0.1(2013-05-16)