R 控制台可以支持后台任务或中断(事件处理)吗?

2024-03-29

在 R 控制台中工作时,我想设置一个后台任务来监视特定连接,并在发生事件时执行另一个函数(警报)。或者,我可以进行设置,以便外部函数仅向 R 发送警报,但这似乎是同一个问题:有必要设置一个侦听器。

我可以在 R 的专用进程中执行此操作,但我不知道这在控制台中是否可行。另外,如果 R 正在计算函数,我对中断 R 不感兴趣,但如果控制台只是等待输入,则发出警报或中断。

以下是三个用例:

  1. 最简单的例子是观看文件。假设我有一个名为“latestData.csv”的文件,并且我想监视它的更改;当它改变时,myAlert()被执行。 (人们可以扩展它来做不同的事情,但只是弹出一个文件已更改的注释就很有用。)

  2. 另一种监视器会监视给定机器是否运行内存不足并可能执行save.image()并终止。同样,这可能是观看由外部监视器生成的文件的简单问题,该监视器保存了输出top或其他一些命令。

  3. 另一个例子就像最近的另一个问题,关于:让 R 停止正在运行的 EC2 机器 https://stackoverflow.com/questions/7273616/have-r-halt-the-ec2-machine-its-running-on。如果来自另一台机器或进程的警报告诉程序保存并终止,那么能够侦听该警报将会很棒。

目前,我怀疑有两种方法可以处理这个问题:通过 Rserve 和可能通过fork。如果有人有如何使用包或通过其他方法执行此操作的示例,那就太好了。我认为解决这三个用例中的任何一个都可以解决所有这些用例,对一点外部代码进行取模。


注1:我意识到,根据另一个 SO 问题的答案 https://stackoverflow.com/questions/2689900/pass-commands-to-an-running-r-runtime/2693059#2693059R 是单线程的,这就是我怀疑的原因fork和 Rserve 可能会起作用。但是,我不确定与 R 终端连接的可行性。虽然 R 的 REPL 附加到控制台的输入,但我试图绕过这个或模仿它,这就是fork or Rserve也许就是答案。

注 2:对于那些熟悉事件处理/事件方法的人来说,这也可以解决所有问题。我只是在 R 中没有找到任何关于此的信息。


更新 1:我发现编写 R 扩展的手册有一个部分引用事件处理 http://cran.r-project.org/doc/manuals/R-exts.html#Meshing-event-loops,其中提到了使用R_PolledEvents。这看起来很有希望。


另一种选择是svSocket 包 http://cran.r-project.org/package=svSocket。它是非阻塞的。

这是一个8分钟视频 http://www.youtube.com/watch?v=rvT8XThGA8o使用它,浏览量超过 3,000 次。它展示了如何将 R 会话转变为服务器以及如何向其发送命令并接收返回的数据。它演示了即使服务器繁忙时也可以这样做;例如,假设您启动了一个长时间运行的进程并忘记保存中间结果,您可以连接到服务器并从中获取结果(在完成之前)。

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

R 控制台可以支持后台任务或中断(事件处理)吗? 的相关文章

  • 在 r 中的 unique() 函数中使用管道不起作用

    我在使用管道运算符 gt 和 unique 函数时遇到一些麻烦 df data frame a c 1 2 3 1 b a unique df a no problem here df gt unique a not working her
  • 使用 Rcpp 得出斐波那契数列的意外结果

    我刚刚开始使用Rcpp很抱歉 如果我错过了一个简单的步骤或类似的东西 我已经尝试过这个 sourceCpp library Rcpp sourceCpp code include
  • 完全缺失列的 VaR 计算

    我需要计算股票收益的滚动 VaR 从这篇文章 使用rollapply函数使用R进行VaR计算 https stackoverflow com questions 25045612 using rollapply function for v
  • 网页抓取(R 语言?)

    我想获取中间栏中的公司名称this http www consumercomplaints in bysubcategory mobile service providers page 1 html页面 以蓝色粗体书写 以及登记投诉者的位置
  • 为什么 rbind 会抛出警告

    这与是否有更优雅的方法将不规则的数据转换为整洁的数据框 https stackoverflow com questions 25102617 are there more elegant ways to transform ragged d
  • left_join 表示列不存在,即使它存在

    我想用两个不同的变量 tp join 连接两个数据框 出现错误 表示无法在第二个数据帧中找到变量 但是当我运行函数 colnames 时 会显示列名称 为什么会这样呢 df new lt left join master settlemen
  • 用于更改向量中元素顺序的闪亮小部件

    在很多网站上 您都有一个拖放界面来更改列表中元素的顺序 我正在寻找类似的东西闪亮 我希望用户能够拖放列表中的元素 通过更改顺序来更改优先级 现在我有一个滥用的解决方案selectizeInput 这是可行的 但当选择列表变得更大时 它很快就
  • R markdown 引文标识符

    R markdown 允许使用 YAML 元数据部分中的参考书目元数据字段指定参考书目文件 例如 title Sample Document output html document bibliography bibliography bi
  • 如何更改 Quarto pptx 中的字体格式

    我正在 R 中使用 Quarto 创建 pptx 要更改我尝试更改的默认字体格式mainfont范围 但是当我渲染它时 最终的 pptx 文件具有默认字体 Calibri 这是我的文件 YAML 将 Quarto 文件渲染为 pptx 时如
  • 在多面图中用 N 注释 x 轴

    我正在尝试生成一些按治疗条件和访问次数细分的数字结果的箱线图 每个框中的观察次数都放在图下方 并且也标记了访问次数 这里有一些虚假数据可以用来说明 我举了两个我尝试过但不太有效的例子 library ggplot2 library plyr
  • 为 ggplot 定义新的尺度轴变换

    我正在尝试创建一个squared使用 y 轴变换scales trans new但遇到错误 MWE data data frame x 1 10 y runif 10 z rnorm 10 10 library ggplot2 ggplot
  • 以计数矩阵作为响应的多项式

    根据帮助multinom 包裹nnet 响应应该是一个因子或具有 K 列的矩阵 它将被解释为每个 K 类的计数 我尝试在第二种情况下使用此函数 但出现错误 这是我所做的示例代码 response lt matrix round runif
  • 如何用月份的全名替换数字月份

    使用 tidyverse 包将月份的列更改为完整的实际月份名称 请记住 尽管这些数据只有四个月 但我的真实数据集包含一年中的所有实际月份 我是 tidyverse 的新手 mydata lt tibble camp c Platinum 2
  • 使用 plyr daply 将数据帧转换为矩阵

    我正在尝试使用daply函数在plyr包 但我无法让它正确输出 尽管组成矩阵的变量是数字 但矩阵的元素是列表 而不是变量本身 例如 以下是一小部分数据 Month Vehicle Samples 1 Oct 10 31057 256 2 O
  • R 中的 Mapdeck 包 - add_grid 似乎未渲染任何内容

    Problem The add gridR 中的函数mapdeck包很精彩 然而 遵循CRAN 文档 https cran r project org web packages mapdeck mapdeck pdf 我似乎无法获得任何数据
  • 如何在knitr中安装软件包?

    到目前为止 我一直在使用这段代码来加载 R 包并编写 R 文件 但我正在尝试使用knitr rm list ls all TRUE kpacks lt c ggplot2 install github devtools mapdata ne
  • plot xts if (on == "years") { 中的错误:缺少 TRUE/FALSE 需要的值

    我正在尝试绘制 xts 对象 但出现有关年份的错误 xts 对象只有一个数值和一个 POSIXct 索引 下面的代码显示了 xts 和尝试绘图时的错误 关于需要对 xts 对象做什么才能正确绘制的任何想法 xTest lt as xts 3
  • 如何使用 grid.arrange 移动图例位置

    我试图在一页中排列 4 个图 将图例放在底部中心 我用它来获取其中一个图的图例 因为它们对于四个图来说是相同的 get legend lt function myggplot tmp lt ggplot gtable ggplot buil
  • 如何缩放(标准化)每列内的 ggplot2 stat_bin2d 值(按 X 轴)

    我有一个 ggplot stat bin2d 热图 library ggplot2 value lt rep 1 5 1000 df lt as data frame value df group lt rep 1 7 len 5000 d
  • 删除绘图轴值

    我只是想知道是否有一种方法可以消除 r 图中的轴值 分别是 x 轴或 y 轴 我知道axes false将摆脱整个轴 但我只想摆脱编号 删除 x 轴或 y 轴上的编号 plot 1 10 xaxt n plot 1 10 yaxt n 如果

随机推荐

  • TPL 是否可以在多个线程上运行任务?

    欢迎特定于 Mono Xamarin 的答案 我正在使用 Task Run 运行 System Threading Tasks TPL 是否会在任务执行的生命周期内将创建的任务分配给单个线程 或者创建的任务是否有可能在运行时被抢占 然后再次
  • Plotly - 如何绘制圆柱体?

    I have a function plotting the cylinder using matplotlib 我想知道如何使用情节来做同样的事情 下面是我绘制圆柱体的 matplotlib 函数 function to plot the
  • 更新核心数据存储位置以支持应用程序组

    我在 App Store 中已有一个使用核心数据来保存数据的应用程序 现在 当 iOS 8 即将发布时 我想为其添加一个小部件 因此我必须使用应用程序组在二进制文件之间共享数据 但有一个问题 我需要更改商店位置以支持所有现有用户的应用程序组
  • 使用 Python 将 HTML 转为 RTF 字符串

    我正在寻找一种将 HTML 文本转换为 RTF 字符串的方法 有没有任何图书馆可以完成这项工作 我在项目中动态获取 html 内容 并需要将其以 RTF 格式呈现 我正在使用 HTML 解析器将 HTML 文本转换为普通字符串 然后尝试使用
  • Boost.Python - 向量到 Numpy 数组

    我有以下课程 class PyWav public static inline boost python object sdVecToNumpyArray std vector
  • 如何模拟 DefaultCellEditor 的“onStartCellEditing”

    CellEditorListener 有 editingStopped 和 editingCancelled 但是 我如何实现在单元格编辑会话开始时需要运行的一段代码呢 一个典型的示例可能是 当您开始编辑时 您希望 JTextField 编
  • 使用 SQL Server 2016 批量导入 Unicode

    由于我们已经迁移到 SQL Server 2016 我们现在尝试使用非 XML 格式文件和 UTF 8 编码数据文件 使用换行符 Unix LF 通过 BULK IMPORT 将 Unicode 字符导入表中 格式文件指定主机文件数据长度
  • Javafx 删除应用程序启动时的快速白屏

    使用 javafx 7 更新 60 操作系统 Windows 7 我刚刚从那里获取了 helloworldhttp docs oracle com javafx 2 get started hello world htm http docs
  • 如何在客户端使用 Java 读取 gRPC 中的元数据

    我正在使用 Java 和 Protoc 3 0 编译器 我的 proto 文件如下所述 https github com openconfig public blob master release models rpc openconfig
  • 具有多个视图的 Durandal 小部件

    我正在使用 Durandal 开发 SPA 并且我创建了一个用于显示特定页面组件的小部件 继杜兰达尔文档 http durandaljs com documentation Creating A Widget 小部件位于app widget
  • 当图像不存在时,如何使用 CSS 隐藏替代文本?

    是否可以在所有浏览器中使用 CSS 隐藏替代文本 我尝试过color transparent 它适用于除 IE 之外的所有浏览器 可以在 IE 中使用 CSS 实现吗 预先感谢您的任何帮助 怎么样使用font size 0 它在隐藏中起作用
  • 使用 javascript 永久更改 :root .css 变量(通过输入获取变量信息)

    我正在为我正在创建的这个网站开发一个想法 这个想法基本上是要求用户提供颜色输入 12345 一旦输入 用户就会提交输入 这将在所有内容中永久更改 css 变量页 这是我的代码 HTML div class adminpage backgro
  • 无法将 DrawerLayout 放在 StatusBar 下

    我有一个活动Navigation Drawer并使用ScrimInsetsFrameLayout我能够将布局放在StatusBar一切都很顺利 然后我决定更换颜色Toolbar and StatusBar with a png所有活动布局的
  • 如何将 3D 模型从 Cinema4D 导出到 Three.js?

    如果我有一个网格建模4D影院 我怎样才能将其导出three js http github com mrdoob three js3D JS 引擎 另外 导出材料也很方便colors for 多边形选择 为此 我刚刚为 Cinema4D 编写
  • 在VBA中处理错误时如何管理无错误情况? [复制]

    这个问题在这里已经有答案了 我需要使用以下命令捕获一些 VBA 错误GoTo陈述 Sub mySub On Error GoTo errorHandler Workbooks Open myWorkbook Some Code errorH
  • 更改 ggplot 中某些类别的线型?

    我有一些数据 library reshape2 library ggplot2 df data frame cat LETTERS 1 6 VAR1 runif 6 VAR2 runif 6 VAR3 runif 6 VAR4 runif
  • Bash 脚本:使用 Expect 将文件发送到 SFTP

    我必须将一些 gzip 压缩文件从本地服务器发送到 SFTP 服务器 我的服务器信息 发行商 ID Ubuntu 说明 Ubuntu 12 04 4 LTS 发布 12 04 代号 精确 创建了一个 bash 脚本 并且能够将文件发送到 s
  • 仅绘制 QPainter Path 贝塞尔曲线的部分

    我只想绘制 QPainter 曲线路径的一部分 我的路径是这样的 QPointF p 4 p 0 QPoint 100 200 p 1 QPoint 200 60 p 2 QPoint 500 180 p 3 QPoint 600 100
  • 训练鲁棒级联分类器时要考虑的建议?

    我正在训练级联分类器以检测图像中的动物 不幸的是 我的误报率相当高 使用 Haar 和 LBP 超高 使用 HOG 可以接受 我想知道如何改进我的分类器 这是我的问题 鲁棒检测所需的训练样本量是多少 我在某处读到需要 4000 个正样本和
  • R 控制台可以支持后台任务或中断(事件处理)吗?

    在 R 控制台中工作时 我想设置一个后台任务来监视特定连接 并在发生事件时执行另一个函数 警报 或者 我可以进行设置 以便外部函数仅向 R 发送警报 但这似乎是同一个问题 有必要设置一个侦听器 我可以在 R 的专用进程中执行此操作 但我不知