首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试littler/Rscript

调试littler/Rscript
EN

Stack Overflow用户
提问于 2009-10-26 02:09:00
回答 3查看 988关注 0票数 7

如何调试从命令行运行的Rscripts

我目前正在使用getopt包来传递命令行选项,如果有错误,我很难:

  1. 查看到底出了什么问题;
  2. R中进行交互调试(因为脚本需要命令行选项)

有谁有示例代码并愿意共享吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-26 17:04:26

您可以将命令行参数传递到与-args交互的shell中,然后将脚本源(‘’)。

代码语言:javascript
复制
$ R --args -v

R version 2.8.1 (2008-12-22)
Copyright (C) 2008 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> require(getopt)
Loading required package: getopt
> opt = getopt(c(
+ 'verbose', 'v', 2, "integer"
+ ));
> opt
$verbose
[1] 1
> source('my_script.R')

现在可以使用旧的browser()函数进行调试。

票数 7
EN

Stack Overflow用户

发布于 2009-10-26 07:47:19

我要么使用老式的打印报表,要么使用交互式分析。为此,我首先使用save()保存状态,然后将其加载到交互式会话中(为此使用Emacs/ESS)。这允许在逐行的基础上使用脚本代码进行交互工作。

但是,在部署到较少的脚本之前,我通常先以交互模式编写/测试/调试代码。

票数 4
EN

Stack Overflow用户

发布于 2009-10-26 17:44:39

另一个选项是使用选项(错误)功能。下面是一个简单的例子:

代码语言:javascript
复制
options(error = quote({dump.frames(to.file=TRUE); q()}))

在错误条件下,您可以创建任意详细的脚本,因此您应该决定调试所需的信息。

否则,如果有您所关注的特定区域(例如连接到数据库),那么将它们包装在tryCatch()函数中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1622797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档