从 bash 脚本中生成并执行 R、Python 等脚本

2024-01-01

一段时间以来我一直在尝试寻找解决方案,但尚未找到令人满意的解决方案。我编写了很多 bash 脚本,但有时我想使用 R 或 Python 作为脚本的一部分。现在,我最终不得不编写两个脚本;原始的 bash 脚本执行前半部分任务,而 R 或 Python 脚本执行后半部分任务。我从 bash 脚本中调用 R/Python 脚本。

我对这个解决方案不满意,因为它将我的程序拆分为两个文件,这增加了事情不同步、需要跟踪更多文件等的可能性。有没有一种方法可以编写包含全部内容的文本块我的 R/Python 脚本,然后让 bash 将其吐出到一个文件中并向其传递参数并执行它?有更简单的解决方案吗?这比将简单的单行代码传递给 R/Python 更复杂,因为它通常涉及通过几个步骤创建和操作对象。


可能有很多解决方案,但这个有效:

#!/bin/bash
## do stuff
R --slave <<EOF
  ## R code
  set.seed(101)
  rnorm($1)
EOF

如果您希望灵活地将额外的 bash 参数传递给 R,我建议:

#!/bin/bash
## do stuff
R --slave --args $@ <<EOF
  ## R code
  set.seed(101)
  args <- as.numeric(commandArgs(trailingOnly=TRUE))
  do.call(rnorm,as.list(args))
EOF
  • 这允许灵活数量的参数,但假设它们都是数字
  • 它还假设所有参数都将从 bash 脚本传递到 R 子脚本

显然你可以放松这些,例如按位置引用参数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 bash 脚本中生成并执行 R、Python 等脚本 的相关文章

随机推荐

  • PHP Excel - 您尝试打开的文件 .xls 的格式与文件扩展名指定的格式不同

    早上好 我使用 API JASPER JasperClient php 其中我使用函数 runReport 返回 xls 在 php 代码中我想从服务器下载 Excel 文件 设置标题 header 内容类型 application vnd
  • 如何让 Bazel、ccache 和沙箱协同工作(ccache 只读文件系统)

    我正在尝试使用通过 copr 安装的 Bazel 0 16 1 和通过 DNF 安装的 ccache 3 4 2 在 Fedora 28 上构建 C 应用程序 我使用默认的 cc binary 和 cc library 规则 当我运行 ba
  • 最小的 Android SDK

    我想我可以通过反复试验找到答案 但其他人可能已经弄清楚了 构建 Android 项目需要哪些 Android SDK 文件 我不需要其余的 并且喜欢将它们剥离 如果您从不使用任何文档 则可以安全地删除 0 5 GB 的文档 您还可以确保仅安
  • 将 Trait 值传递给 SubFactory Django

    我有两个工厂 class DispatchDataFactory factory django DjangoModelFactory class Meta model models DispatchData order factory Se
  • Snowflake date_trunc 从日期中删除时间

    我有雪花列 其中包含 yyyy mm dd hh MM ss 格式的日期 我使用下面的函数 date trunc DAY 2019 09 23 12 33 25 输出 2019 09 23 00 00 00 预计按照文档 https doc
  • 在 C# 中使用参数的成本

    有人对在 C 中使用 params 进行方法参数传递有建议吗 我正在考虑使用 params 功能对前 6 个参数进行重载 然后对第 7 个参数进行重载 我的理由是避免参数功能所需的额外数组分配 这是针对一些高性能实用方法的 有什么建议吗 创
  • 用随机颜色填充封闭区域 - Haskell - 星期五

    我正在尝试执行不是很复杂的图像分析 以尝试找到不同的形状并计算它们的一些参数 例如面积和周长 以像素为单位 并且我正在尝试在 Haskell 中执行此操作 我想这样做是为了尝试使用函数式编程语言 The first task in line
  • 使用gson反序列化对象的特定JSON字段

    我有以下 JSON 字符串 ms images 5160 1 turl http ts1 mm bing net th id I4693880201938488 pid 1 1 height 178 width 300 imgurl htt
  • MySQL C# 连接字符串故障转移

    我知道我可以用逗号分隔连接字符串中的主机 它将使用不同的服务器 https www connectionstrings com mysql connector net mysqlconnection multiple servers htt
  • 是否可以仅在我的项目中使用 Django models 模块?

    我正在开发一个使用 Celery 的小型独立 python 应用程序 我使用 django 框架构建了这个 但我的应用程序只是后端 这意味着用户不需要访问我的网站 并且我的应用程序只是为了从 celery 接收任务队列并对数据库执行操作而构
  • 在哪里指定窗口组件的位置?

    我在 netBeans 平台中创建了模块 然后在那里创建了窗口组件 我想指定主窗口中的默认位置 例如职位 编辑 我在哪里可以做 在 NetBeans 7 下 从 输出 位置更改为 编辑器 位置 在您的 Window 类中 更改注释 TopC
  • 有哪些适合初学者的优秀 Erlang 入门/教程?

    有哪些可以深入了解 Erlang 和函数式编程的好链接 这可能值得一看http learnyousomeerlang com http learnyousomeerlang com
  • Xml 架构:空 targetNamespace

    在 Xml 架构中不使用 targetNamespace 属性或使用空属性是否合法 如果是这样 那么这意味着什么 我们是在 空命名空间 始终存在 中 添加 一些东西 还是创建一个与其他模式无关的 匿名命名空间 实例 xml 文档是什么样子的
  • 以编程方式创建的窗口居中

    我一直在使用这里的示例来创建一个自定义的无标题栏窗口 在 Mac OS X 上绘制自定义窗口 http cocoawithlove com 2008 12 drawing custom window on mac os x html 我发现
  • 使用 col-md-push-* 将列推到下一行

    我有以下 6 个构建模块 1 2 3 4 5 6 所有块在一行中都有一个 col sm 6 类 但由于块 3 超出了 bootstraps 12 列结构 它将跳转到下一行 完美就是我想要的 唯一的问题是 我想交换第 2 块和第 3 块 但它
  • Vue 3 不会检测到对 Vue 组件外部创建的对象所做的更改

    我有一个班级角色 Character ts This is called when server responds public setAttributeByType type StatsTypes value number void sw
  • 找不到实体类型属性的支持字段,并且该属性没有 getter

    我遇到了异常 System InvalidOperationException No backing field could be found for property ApartmentId of entity type Address
  • 从变量扩展环境变量

    我有一个看起来像这样的代码 my var MY FIRST ENV VAR 我的问题是 如何从环境变量 MY ENV VAR 中获取值 我已经尝试了很多东西 但主要问题是 my var 现在是一个字符串 我想这样做的原因是因为我有一些名称几
  • 将 Roslyn 编译的程序集加载到沙箱 ​​AppDomain 中

    我有一个代码片段 它使用脚本引擎编译脚本 并将程序集作为字节数组检索 现在我想加载这个Assembly在沙盒中 这就是我所拥有的 Assembly dynamicAssembly ScriptEngine engine Session se
  • 从 bash 脚本中生成并执行 R、Python 等脚本

    一段时间以来我一直在尝试寻找解决方案 但尚未找到令人满意的解决方案 我编写了很多 bash 脚本 但有时我想使用 R 或 Python 作为脚本的一部分 现在 我最终不得不编写两个脚本 原始的 bash 脚本执行前半部分任务 而 R 或 P