R 中的高级调试功能?

2024-04-27

R 中是否有任何软件包和/或 hack 可以为调试器提供更多功能?我专门寻找:

  1. 能够跳过整个循环
  2. 无需调用即可单步执行函数调用的能力debug对他们也
  3. 设置断点或有效插入的能力browser当我已经在调试器中时调用代码(也就是说,如果我在调试过程中找出我想要断点的位置,我就不必退出并再次重新运行整个函数)

Etc.

编辑时:我在 emacs/ess 中运行 R,所以如果有任何 ess 技巧可以提供帮助,我也会对此感兴趣。


This is called ess-tracebug. This and a bunch of other functionality for development is available on C-c C-t ess-dev-map. Press C-c C-t C-h to see what is there It should be self explanatory.

看到这个section http://ess.r-project.org/Manual/ess.html#Developing-with-ESSess手册和原始项目页面ess-tracebug https://code.google.com/p/ess-tracebug/对于基本的东西。有多种可用的断点类型,您可以添加自己的断点并使它们执行任意 R 代码。错误操作和记录器也是如此。

还有一个tutorial https://code.google.com/p/ess-tracebug/wiki/GettingStarted there.

至于你的观点。

  1. 默认情况下你不能跳过整个循环(据我所知,R 不允许这样做)。但是您可以使用 M-N 跳过多次迭代,或者在循环后放置一个断点,并在遇到循环时运行 M-C(不过您需要提前 eval/source )。还有M-U跳转到外层调用框架。

  2. Yes, C-c C-t C-d to mark whatever function or method you want for a debugger. It is smart enough to also show internal/namespace functions visible from the current debugging context. See here https://code.google.com/p/ess-tracebug/#Flag/Unflag_for_Debugging for how it looks.

  3. 您可以按照上面 (2) 中的方式标记函数进行调试,或者插入断点并评估函数。评估的效果取决于你如何做。如果它是一个简单的评估(如 C-c C-c),那么该函数将被引入到当前上下文中,这可能是您想要的,但很可能不是。如果开发人员处于活动状态并且该函数是已开发包的一部分,则评估将在命名空间/包级别进行,因此您将立即安装断点。

You can also toggle breakpoints with C-c C-t o. The effect is immediate, you won't need to source/evaluate your function again.

To conclude, C-c C-t C-d is probably the cleanest way to debug a function/method if you already in the debugging context. Otherwise, just set a breakpoint and evaluate/source the code.

将来可能会添加动态断点,但它会增加额外的复杂性,而在我看来并没有太多收益。

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

R 中的高级调试功能? 的相关文章

  • R2WinBUGS - 使用模拟数据进行逻辑回归

    我只是想知道是否有人有一些使用 R2WinBUGS 包来运行逻辑回归的 R 代码 理想情况下使用模拟数据来生成 真相 和两个连续协变量 Thanks 基督教 PS 生成人工数据 一维情况 并通过 r2winbugs 运行 winbugs 的
  • 如何远程调试长时间运行的 python 脚本或服务?

    正如标题所说 我希望能够连接到在 Paster 或 uwsgi 下运行的 python 进程并利用 pdb 功能 Using winpdb http winpdb org 您可以像这样附加到正在运行的进程 插入 import rpdb2 r
  • PCA 图中带有名称的工具提示

    我想用 ggplotly 生成交互式绘图 工具提示应该显示变量的名称 interactive lt ggplotly pca dynamicTicks T tooltip c x y label list pca 是 PCA 的可视化 su
  • 与 data.table 合并时防止重复列

    我有两个数据表 它们的列名部分相似 dfA lt read table text A B C D E F G iso year matchcode 1 0 1 1 1 0 1 0 NLD 2010 NLD2010 2 1 0 0 0 1 0
  • 使用 R 迭代读取、操作多个 Excel 文件并将它们附加到一个数据帧中

    在一个目录下 我有多个具有相似格式的excel文件 您可以从以下位置下载示例文件 here https www dropbox com s ho3visres55kpoy test zip dl 0 我需要 循环文件和read excel
  • 运行 R.exe 会创建临时文件吗?

    我在想 是否启动 R exewindows创建临时文件并 是否解释类似x lt 5写入那些临时文件 如果创建了临时文件 它们存储在哪里 如果我启动多个 R exe 实例会发生什么情况 他们会共享并覆盖彼此的临时文件吗 R 的每个实例都有自己
  • 加拿大人口普查地图分区 R

    我对 R 和映射非常陌生 我想创建某些数据的映射 我有一组名为 D Montreal 的数据 显示 2010 年前往蒙特利尔的加拿大人口普查部门游客来自哪个国家 我想使用此数据创建一个地图 以显示有多少人来自不同地区 也许可以通过对根据人数
  • 从 foreach 循环赋值

    我想并行化一个循环 例如 td lt data frame cbind c rep 1 4 2 rep 1 5 rep 1 10 2 names td lt c val id res lt rep NA NROW td for i in l
  • 如何在 conda 中静音或抑制 gfortran (或 clang?)后端?

    我一直致力于构建一个非常特殊的 conda 环境 专为python and R与串扰使用rpy2 我想出的方法可以安装正确的R包如下 install main environment sh now date T echo Start Tim
  • 在 R 中将文本文件拆分为段落文件

    我正在尝试将一个巨大的 text 文件拆分为多个 text 文件 每个文件仅包含一个段落 让我举个例子 我需要这样的文字 这是第一段 这没有任何意义 因为这只是一个例子 这是第二段 和前一段一样毫无意义 另存为两个独立的 txt 文件 其中
  • 有条件地将可选组替换为 gsub

    一位用户问我如何做到这一点如何使 ggplot 图例中的选定单词变为斜体 https stackoverflow com questions 76054997 how to italicize select words in a ggplo
  • 使用 gbuffer 在 R 中缓冲(地理)空间点

    我正在尝试缓冲数据集中半径为 100 公里的点 我正在使用该功能gBuffer从包装中rgeos 这是我到目前为止所拥有的 head sampledf postalcode lat lon city province 1 A0A0A0 47
  • 为 RStudio Server 1.0.44 配置日志目录

    我在 CentOS 7 上运行 RStudio Server 1 0 44 根据文档 https support rstudio com hc en us articles 200554766 RStudio Server Applicat
  • 在knitr中打印漂亮的交叉表

    我想要的是使用 R Markdown 和 knit 从 RStudio 打印漂亮的交叉表 无论是在 pdf 文件中 还是在 html 文件中 我怀疑我错过了一些非常明显的东西 因为我不敢相信这是如此困难 我使用 xtabs 或 ftable
  • 为什么安装的“igraph”包在加载后返回“libicui18n.so.58:无法打开共享对象文件”?

    我试图使用命令 install packages igraph 在 R 中安装 igraph 包 安装后 在测试阶段出现以下错误 测试是否可以加载已安装的包错误 包或命名空间 dyn load file DLLpath DLLpath 中的
  • 完全缺失列的 VaR 计算

    我需要计算股票收益的滚动 VaR 从这篇文章 使用rollapply函数使用R进行VaR计算 https stackoverflow com questions 25045612 using rollapply function for v
  • geom_密度匹配geom_histogram binwitdh

    我想在 ggplot2 中的分布条形图上添加一条线以显示平均分布 但遇到了麻烦 像这样的 ggplot 调用 ggplot x aes date received geom histogram aes y count binwidth 30
  • 如何从类外部更改公共 R6 类方法?

    我希望能够在我的 R6 类中重新定义公共方法 以便它根据该类保存的数据类型进行更改 如下所示 library R6 Simple lt R6Class Simple public list dt mtcars my print functi
  • R:邻接表到邻接矩阵

    Bonjour 我想将邻接列表 3 列 转换为邻接矩阵 在这个论坛中 我找到了多个有关如何将边列表转换为邻接矩阵的示例 我成功地为两列列表做到了这一点 我已经尝试了在网上可以找到的所有解决方案 但似乎我错过了一小步 我尝试过的 我的变量是用
  • R markdown 引文标识符

    R markdown 允许使用 YAML 元数据部分中的参考书目元数据字段指定参考书目文件 例如 title Sample Document output html document bibliography bibliography bi

随机推荐

  • 如何为列表中的项目添加背景颜色

    我有一个有序列表 ol li class odd Lorem ipsum dolor sit amet consectetur li li class even Some more text li ol 看起来像这样 Lorem ipsum
  • C++ 条件变量通知未按预期工作

    我正在尝试在之前的工作完成后立即启动新线程worker thread has started 但也许结束了 也可能没有结束 我已经用时间延迟替换了开始和结束的工作 我的代码是 include
  • jquery ajax - 返回 json 或纯 html 更好

    当时间从ajax返回时 我应该返回 json 编码 并使用 jquery parseJSON 并使用 document createElement 并将数据附加到刚刚创建的元素内 或者最好以 html 文本形式返回 example div
  • 如何使用 C# 从数据库中检索多个图像

    我有一个包含9张图像的数据库 这些图像不断变化 所以我无法直接设置src在 HTML 中 img 标签来显示 9 个图像 我必须从数据库中选择它们并相应地绑定它们 我可以使用以下命令检索并打印 1 张图像Response BinaryWri
  • AVAudioPlayer 不播放声音

    我有一个 WatchKit 应用程序 当点击手表上的按钮时 它会向 iOS 应用程序发出播放声音的信号 由于某种原因 当我使用自定义类来处理设置实例时 声音没有播放AVAudioPlayer并播放声音 如果我在里面做那部分session d
  • 好的 Clojure 代码示例? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在第一次查看 Clojure 我发现查看 Clojure 核心库的 doc xxx 和 sourc
  • 使用 jquery deferreds 处理可变数量的 ajax 请求

    当我有可变数量的 ajax 请求时 如何使用 deferreds 调用它们 我猜 qty of gets 3 function getHTML productID qty of gets var dfd Deferred i 0 c 0 t
  • Hudson 与 UCM ClearCase 集成

    我有一台安装了 JBoss UCM ClearCase 和 ant 的 Linux 构建机器 我想了解如何使用 Hudson 和 Hudson Clearcase 插件配置持续集成 我可以使用已创建的现有动态视图吗 请给我一些基本步骤 先感
  • Angular 4 单元测试:de.query(By.css(...)) 与 de.nativeElement.querySelector(...) 的 Native Web API

    使用有什么好处吗el de query By css h2 nativeElement 通过原生元素 APIel de nativeElement querySelector h2 它们提供相同的结果 刚开始使用 Angular 4 单元测
  • 使用只有一个元组值的变体类型构造函数

    type foo Foo of int int let t 1 2 Foo t Error The constructor Foo expects 2 argument s but is applied here to 1 argument
  • 在函数中调用 patsy 时出现命名空间问题

    我正在尝试为 statsmodels 公式 API 编写一个包装器 这是一个简化版本 该函数的作用远不止于此 import statsmodels formula api as smf def wrapper formula data kw
  • 更改卡片布局中的活动项目。扩展JS

    我有一个使用卡片布局的面板 如下所示 var cardpanel new Ext Panel id cardPanel title Card Layout region center layout card activeItem 0 aut
  • 我应该如何将我的语言服务器与我的客户端打包?

    我正在尝试为 VSCode 创建语言服务器 它由客户端和服务器组成 通过 RPC 进行通信 官方文档有一个工作示例 https code visualstudio com docs extensions example language s
  • Oracle 日期索引很慢。没有它查询速度快 300 倍

    我有一个 Oracle 查询 如下所示 运行时间为 10 分钟或更长时间 select r range text as duration range nvl count c call duration 0 as calls nvl SUM
  • 如何在 Bootstrap Modal 中使用 CKEditor?

    如果我使用CKEditor http cksource com ckeditor基于 Bootstrap 模板的 HTML 页面中的插件 效果很好 但是如果我像这样在 Bootstrap Modal 上插入编辑器 div class mod
  • 在 socket.on() 的回调上调度操作

    所以基本上我得到了这个套接字 它工作正常 向我发送 新订单 消息 我正在使用 redux 并且我想分派一个操作 然后减速器会得到它并且我的商店将会更新 但这段代码没有做任何事情 socket on new order order gt re
  • Twitter 错误无法发布推文

    这个错误可能是什么 Could not post Tweet Error 403 Reason Status is a duplicate 实际上这是一条经过编辑的消息 我得到的错误代码为403和原因为Status is a duplica
  • AttributeError:该层从未被调用,因此没有定义的输入形状

    我尝试通过创建三个类在 TensorFlow 2 0 中构建自动编码器 Encoder Decoder 和 AutoEncoder 由于我不想手动设置输入形状 因此我尝试从编码器的 input shape 推断解码器的输出形状 import
  • JSP:已为此响应调用 getOutputStream()

    我正在使用此代码从 FTP 下载文件 我在 tomcat 日志中遇到异常 如下所示 我能够执行我的任务 但我的日志大小增加了很多 Code if file exists if file canRead IE6 SSL PDF Bug htt
  • R 中的高级调试功能?

    R 中是否有任何软件包和 或 hack 可以为调试器提供更多功能 我专门寻找 能够跳过整个循环 无需调用即可单步执行函数调用的能力debug对他们也 设置断点或有效插入的能力browser当我已经在调试器中时调用代码 也就是说 如果我在调试