此问题与我之前的问题How to insert a python program into a bash script?类似。我基本上试图用R实现相同的目标。我尝试了以下
#!/bin/bash
R 1 2 3 4 << EOF
args<-commandArgs(TRUE)
for (i in args) {
print(i)
}
EOF
输出(在R中运行时显示)应为:
[1] "1"
[1] "2"
[1] "3"
[1] "4"
我之前的问题的答案方法适用于python但不适用于R(这是我的预期)。有没有办法在bash脚本中运行R代码,就像使用python一样?
答案 0 :(得分:2)
简短版本:不要这样做。
长版:编写一个R脚本,您可以使用Rscript
可执行文件,如果有,还可以使用littler软件包中的r
。
虽然shell脚本起初看起来很诱人,但在某些时候你会遇到变量插值和转义的问题。适当的R脚本更好 - R源包含大量示例。
示例:
/tmp$ ./rex.R 1 2 3 4
[1] "1"
[1] "2"
[1] "3"
[1] "4"
/tmp$
有了这个来源:
/tmp$ cat rex.R
#!/usr/bin/Rscript
args<-commandArgs(TRUE)
for (i in args) {
print(i)
}
tmp$