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

时间:2014-07-08 22:07:01

标签: r shell sh

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

#! /bin/bash
Rscript myfile.R

但是它给了我这个错误:Rscript:command not found

我也试过这个:

#! /bin/bash
R --not-save-- < myfile.R 

它也会出现此错误:R:找不到命令

最好的方法是什么?

5 个答案:

答案 0 :(得分:6)

想法是编写一个shell,而是写一个 R 脚本。这就是Rscript的用途,我们的littler包提供/usr/bin/r甚至在此之前。

所以就这样做

 #!/usr/bin/Rscript

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

或使用

 #!/usr/bin/r

for littler - 我有多个cron工作就是这么做的。

这显然假设您Rscript中有r/usr/bin。在常规的Debian或Ubuntu盒子上。

答案 1 :(得分:2)

我认为您正在寻找的是批处理模式。你可以这样做:

R CMD BATCH [options] infile [outfile] &

您可以阅读有关批处理模式here.

的更多信息

答案 2 :(得分:1)

这适用于Windows上的Cygwin:

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

# dummy example

cat("Hello StackOverflow\n")

答案 3 :(得分:0)

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

user@ubuntu:~/RCode/RCode$ R
> source("data_acquisition.R")
> load_libraries()
> df <- acquire_nps()
> head(df)
...

答案 4 :(得分:0)

考虑到您已经在计算机(基于Linux)中安装了R,下面是在sh文件中运行R可以遵循的步骤。

OS:Mac-Os(莫哈韦版本)

R版本:3.6

步骤1 :我已经使用brew在Mac机器上安装了R。

$ brew install r(-这会将最新的R安装到您的计算机中-)

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

$ touch startR.sh

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

$ vim startR.sh

(在内容下方粘贴)

#!/bin/sh
Rscript sample.r
echo " r sample run"
exit

(--我用名称sample.R创建了简单的R文件,其中包含以下内容-)

sayHello <-function(){

print('hello') }

sayHello() enter image description here

(这是简单的hello函数,请根据实际函数随意更改)

注意:请将您的sample.R放在与startR.sh相同的位置

第4步:将权限更改为.sh文件

$ chmod 750 startR.sh

第5步:执行.sh文件

$ sh startR.sh

如果一切正常,它将在输出下方显示。

在启动过程中-警告消息: 1:使用“ C”设置LC_COLLATE失败 2:使用“ C”设置LC_TIME失败 3:使用“ C”设置LC_MESSAGES失败 4:使用“ C”设置LC_MONETARY失败 1“你好”  r样品运行

enter image description here