【问题标题】:How to run R codes inside shell script?如何在 shell 脚本中运行 R 代码?
【发布时间】:2014-07-08 22:07:01
【问题描述】:

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

#! /bin/bash
Rscript myfile.R

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

我也试过这个:

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

它也给出了这个错误:R : command not found

最好的方法是什么?

【问题讨论】:

  • 格式化在那里产生了影响。 R 可能不在您的 PATH 环境变量中。你可以通过输入R从命令行运行R吗? bash 是你的默认外壳吗?

标签: r shell sh


【解决方案1】:

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

就这样吧

 #!/usr/bin/Rscript

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

或使用

 #!/usr/bin/r

对于littler——我有多个 cron 工作在做这件事。

这显然假设您将在 /usr/bin 中拥有 Rscriptr,例如在普通的 Debian 或 Ubuntu 机器上。

【讨论】:

    【解决方案2】:

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

    R CMD BATCH [options] infile [outfile] &
    

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

    【讨论】:

      【解决方案3】:

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

      #!/cygdrive/c/Progra~1/R/R-3.3.0/bin/x64/Rscript.exe
      
      # dummy example
      
      cat("Hello StackOverflow\n")
      

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

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

          操作系统:Mac-Os(Mojave 版本)

          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

          打印('你好') }

          说你好()

          (这是一个简单的hello函数,请随意改变你的实际函数)

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

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

          $ chmod 750 startR.sh

          第五步:执行.sh文件

          $ sh startR.sh

          如果一切顺利,它应该在输出下方打印。

          在启动期间 - 警告消息: 1:设置 LC_COLLATE 失败,使用“C” 2:设置 LC_TIME 失败,使用“C” 3:设置 LC_MESSAGES 失败,使用“C” 4:设置 LC_MONETARY 失败,使用“C” 1“你好” r 示例运行

          【讨论】:

            猜你喜欢
            • 2010-10-06
            • 2018-09-08
            • 1970-01-01
            • 2014-11-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-12-16
            • 2023-02-08
            相关资源
            最近更新 更多