从 python 执行 R 脚本

2023-11-25

我有一个 R 脚本,可以绘制一些图。我希望能够从 python 执行这个脚本。

我首先尝试:

import subprocess
subprocess.call("/.../plottingfile.R", shell=True)

这给了我以下错误:

/bin/sh: /.../plottingfile.R: Permission denied
126

我不知道126这个数字意味着什么。我的所有文件都在桌面上,因此我认为不需要任何特殊权限?我认为这个错误可能与 cwd = none 有关,但我改变了这一点,但仍然有错误。

接下来我尝试了以下操作:

subprocess.Popen(["R --vanilla --args </.../plottingfile.R>"], shell = True)

但这也给了我一个错误:

/bin/sh: Syntax error: end of file unexpected.

最近我尝试过:

subprocess.Popen("konsole | /.../plottingfile.R", shell = True)

这打开了一个新的 konsole 窗口,但没有运行 R 脚本。另外,我收到以下错误:

/bin/sh: /.../plottingfile.R: Permission denied

Thanks.


首先,确保您的 platttingfile.R 脚本位于您可以访问的位置。通常它是同一个目录。

我在互联网上读到有一个实用程序称为RScript用于执行R来自命令行的脚本。因此,为了运行该脚本,您可以像这样使用 python:

import subprocess
retcode = subprocess.call(['/path/to/RScript','/path/to/plottingfile.R'])

这将返回retcode成功完成后为 0。如果您的plottingfile.R 返回某种输出,它将被抛出到 STDOUT 上。如果它拉起一些 GUI,那么它就会出现。

如果你想捕获 stdout 和 stderr,你可以这样做:

import subprocess
proc = subprocess.Popen(['/path/to/RScript','/path/to/plottingfile.R'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = proc.communicate()

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

从 python 执行 R 脚本 的相关文章

随机推荐

  • Google Maps V3 渲染超过 100 万个标记(在合理的时间内)

    我最近使用 API V3 最新版本 创建了一个 Google 地图 我的要求之一是能够渲染超过 100 万个标记 在合理的时间内 合理的时间应在 15 秒以下 我知道一次渲染所有 100 万个标记是相当疯狂的 这就是我研究性能选项的原因 我
  • 如何在 StreamSocket 的 ConnectAsync() 上设置超时值?

    在 Windows Phone 8 1 应用程序中 我必须按如下方式创建套接字 我如何更改它 以便它在我可以指定的时间段后超时 socket new StreamSocket await socket ConnectAsync hostNa
  • 如何提高[重复]的幂

    这个问题在这里已经有答案了 我对 C 很陌生 我试图将某事赋予某事力量 例如 5 3 125 但是当我编码时 include
  • GIT:不处理包含 unicode 字符的文件名(例如中文/韩文)

    Issues 在 GIT 中使用 ls 将文件名中的所有 unicode 显示为 即 mp3 使用 git add A 时返回以下错误 致命 无法统计 example mp3 没有这样的文件或目录 有针对这个的解决方法吗 Thanks As
  • 我应该扩展 ArrayList (is-a) 还是应该将其包含为成员 (has-a)?

    我正在制作一个简单的程序来维护一个数字列表 并且我希望这个列表也有一个名称 哪种方法是最好的方法 让我的列表类扩展 ArrayList 还是让它包含 ArrayList 成员 在这两种情况下 当然都会有一个 name 字符串成员 第一种方法
  • 如何使用 xml 或使用 java 更改按钮的形状?

    我想制作一个带有形状的自定义按钮 该怎么做 这是示例按钮 其内容为oval形状 的gradient表示起始和结束颜色以及角度 椭圆形的角 试试这个 提到这个的名字xml在按钮背景中android background drawable sa
  • PHP 根据一个字段的值将数组分成几组

    我有一个数组 其中包含按字母顺序排列的名称和其他详细信息的数组 每个数组都包含与名称关联的第一个字母 Array 0 gt Array 0 gt a 1 gt Alanis Morissette 1 gt Array 0 gt a 1 gt
  • 错误:找不到符号导入 com.gorav.news.databinding.ActivityDetailBindingImpl;

    我尝试构建应用程序 但不断收到 Users gouravkarwasara Desktop News2 app build generated source kapt debug com gourav news DataBinderMapp
  • 简化类道路系统的碰撞网格?

    如图所示 Unity 中有一个基于图块的道路或人行道系统 如图所示 我会看到刚体在其接缝处移动时会出现小凹凸 即使对于相同的垂直位置和比例 并且在每个图块使用盒式碰撞器时也是如此 有没有好的方法 例如将碰撞网格合并为一个超级简化且全平面的网
  • 如何从 delphi2007 win32 刻录 CD/DVD

    有没有好的库可以让我从 Delphi 2007 win32 刻录 CD DVD 谢谢 我知道有一对 Bayden 的 Delphi CD 刻录库 舞蹈哺乳动物免费的 Delphi CD 刻录库 Zyl Burner for Delphi 需
  • Slick 中的 Scala 投影仅针对一列

    我正在关注自动增量字段的精美文档示例我在创建一个时遇到问题映射投影那 好吧 只有一栏 case class UserRole id Option Int role String object UserRoles extends Table
  • CSS 动画或过渡可以用于 flex-direction 属性吗?

    如果有序列表使用flex direction column在小屏幕上和flex direction row在较大的屏幕上 CSS3 动画或过渡是否可以实现动画效果flex direction媒体查询之间的属性 初始页面设置 html box
  • 共享内存中的条件变量 - 此代码符合 POSIX 标准吗?

    POSIX 标准是否允许named包含互斥锁和条件变量的共享内存块 我们一直在尝试使用互斥锁和条件变量来同步同一计算机上两个进程对命名共享内存的访问 LynuxWorks LynxOS SE系统 符合 POSIX 一个共享内存块被称为 sy
  • C++11 为什么'decltype(x)'和'decltype((x))'的类型不同?

    我发现它们是不同的 并且语言标准规定了每个语句应该检索什么样的类型 变量和表达式之间的差异 但我真的很想知道为什么这两种类型应该不同 include
  • Bash if [ -d $1] 对于空 $1 返回 true

    所以我有以下小脚本并一直想知道 bin bash if d 1 then echo foo else echo bar fi 为什么调用时会打印 foo没有参数 测试 d 对于空字符串返回 true 是怎么回事 From info core
  • 响应发送到客户端后在 Django 中执行代码

    在我的 Django 应用程序中 我想跟踪响应是否已成功发送到客户端 我很清楚 像 HTTP 这样的无连接协议中没有 无懈可击 的方式来确保客户端已收到 并显示 响应 因此这不会是关键任务功能 但我仍然想在最晚可能的时间 响应不是 HTML
  • Pycharm 社区版:“无法显示框架变量”

    每当 Pycharm 在一个使用 Flask 的项目的断点处停止时 我就会在调试窗格 替换变量 中收到此错误 我创建了一个新项目来测试这一点 本项目中断点处显示的变量 但是 由于运行配置中存在不存在的文件而导致异常断点上没有显示它们 有人对
  • 向 Apache PHP 网络服务器发送 iPhone HTTP 请求

    我是一名具有游戏和 3D 图形背景的程序员 目前我想温习我的网络和 Web 开发技能 我有一个想要完成的任务来做到这一点 我的想法是 我希望能够发送 HTTP 请求或类似于我的网络服务器的东西 该服务器运行基于 LAMP 的设置 我想知道如
  • 为什么 require mongo 给我 LoadError: no such file to load -- openssl

    我正在使用 Ubuntu Server 10 Ruby 1 9 2 当我尝试要求 mongo 时 它给了我这个错误 irb main 001 0 gt require mongo LoadError no such file to load
  • 从 python 执行 R 脚本

    我有一个 R 脚本 可以绘制一些图 我希望能够从 python 执行这个脚本 我首先尝试 import subprocess subprocess call plottingfile R shell True 这给了我以下错误 bin sh