4

我有一个 bash 脚本,它做一些事情,然后调用 Rscript。这里举一个简单的例子来说明:

测试.sh:

Rscript test.r

测试.r:

args <- commandArgs()
print(args)

如何./test.sh hello在命令行上使用 R 打印你好?

4

3 回答 3

4

你可以让 bash 使用类似这样的 bash 脚本将所有参数传递给 R 脚本:

#!/bin/bash

Rscript /path/to/R/script --args "$*"

exit 0

然后,您可以选择需要在 R 中丢弃多少来自 $* 的参数。

于 2013-07-13T19:59:20.663 回答
2

我注意到处理这个问题的方法是:

测试.sh:

Rscript test.r $1

测试.r:

args <- commandArgs(TRUE)
print(args)

$1表示传递给 bash 脚本的第一个参数。

当调用commandArgs()而不是 时commandArgs(TRUE),它不会从 bash 传递,而是会打印内部调用的其他参数。

于 2013-07-13T19:59:39.987 回答
0

关于asb的回答:

having "--args" in the line of bash script doesn't work, the "--args" was taken as the literal of real argument that I want to pass into my R script. Taking it out works, i.e. "Rscript /path/to/my/rfile.R arg1 arg2"

bash version: GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu) Rscript version: R scripting front-end version 3.0.1 (2013-05-16)

于 2015-07-08T17:44:01.810 回答