如何在shell脚本中运行R代码?

如何在shell脚本中运行R代码?,r,shell,sh,R,Shell,Sh,我有一个R文件(myfile.R)。我想使用shell脚本运行它。我该怎么做? 我试过这个: #! /bin/bash Rscript myfile.R #! /bin/bash R --not-save-- < myfile.R 但它给了我一个错误:Rscript:command未找到 我也试过: #! /bin/bash Rscript myfile.R #! /bin/bash R --not-save-- < myfile.R #/bin/bash R--不保存-

我有一个R文件(myfile.R)。我想使用shell脚本运行它。我该怎么做? 我试过这个:

#! /bin/bash
Rscript myfile.R
#! /bin/bash
R --not-save-- < myfile.R 
但它给了我一个错误:Rscript:command未找到

我也试过:

#! /bin/bash
Rscript myfile.R
#! /bin/bash
R --not-save-- < myfile.R 
#/bin/bash
R--不保存--
它还提供了以下错误:未找到R:command

最好的方法是什么?

不写shell,而是写R脚本。这就是
Rscript
的用途,我们的软件包甚至在此之前就提供了
/usr/bin/r

那就这么做吧

 #!/usr/bin/Rscript

 cat("Hello, world\n")
 # rest of your code below 
或使用

 #!/usr/bin/r
我有多个cron工作在做这件事


这显然是假设您在
/usr/bin
中有
Rscript
r
,就像您在常规Debian或Ubuntu设备上一样。

我想您需要的是批处理模式。您可以这样做:

R CMD BATCH [options] infile [outfile] &

您可以阅读有关批处理模式的更多信息

这在Windows上的Cygwin中适用于我:

#!/cygdrive/c/Progra~1/R/R-3.3.0/bin/x64/Rscript.exe

# dummy example

cat("Hello StackOverflow\n")

用命令
R
启动R,然后添加您的代码

user@ubuntu:~/RCode/RCode$ R
> source("data_acquisition.R")
> load_libraries()
> df <- acquire_nps()
> head(df)
...
user@ubuntu:~/RCode/RCode$R
>来源(“data_acquisition.R”)
>加载库()
>测向头(df)
...

考虑到您已经在机器上安装了R(基于Linux),我觉得下面是在sh文件中运行R的步骤

操作系统:Mac操作系统(莫哈韦版本)

R版本:3.6

步骤1:我已使用brew在mac电脑中安装了R

$brew安装r(--这将在您的计算机中安装最新的r-)

步骤2:创建示例sh文件。(startR.sh)

$touch startR.sh

步骤3:将以下内容复制到startR.sh文件中

$vim startR.sh

(粘贴以下内容)

(--我创建了名为sample.R的简单R文件,其内容如下--)


sayHello格式在那里起了作用。很可能R不在PATH环境变量中。只需键入
R
即可从命令行运行R吗?
bash
是您的默认shell吗?