《数据科学:R语言实现》——1.11 调试函数

1.11 调试函数

作为一个程序员,调试是日常最常见的任务。最简单的调试方法是在期望的位置插入一条打印语句;然而,这种方法很低效。这里,我们会展示如何使用一些R调试工具来加速调试过程。

准备工作

确保你已经在操作系统中安装了R语言,完成了之前的步骤。

实现步骤

执行下列步骤,来调试R函数。

1.首先,我们创建函数debugfunc,其带有参数x和y,但是我们只返回x:

2.然后我们只把2传递给dubugfunc:

3.接着,我们对函数debugfunc应用函数debug:

4.现在,我们再把2传递给dubugfunc:

5.你可以键入help来查看所有的命令:

6.然后,你可以键入n来进入下一个调试步骤:

7.现在你可以使用objects或者ls列出所有的变量:

8.在每一步中,你都可以键入变量名来获取当前的值:

9.在最后一步中,你可以通过键入命令Q来跳出调试模式:

10.你可以使用函数undebug离开调试模式:

11.接下来,让我们使用函数browser来调试:

12.调试函数会直接进入函数browser所在的位置:

13.为了恢复调试过程,可以在浏览过程中键入recover:

14.另外,你可以使用函数trace给步骤4中的函数debug插入代码:

15.你可以从步骤4跟踪调试过程,并判定插入的代码:

  1. 你也可以使用函数trace来跟踪某个函数的使用:
  2. 你还可以使用函数traceback来打印函数的调用堆栈:

运行原理

由于所有的代码都无法避免缺陷,因此R程序员同样需要准备好优秀的调试工具,做好调试的准备。在本教程中,我们展示了如何使用函数debug、browser、trace和traceback来调试函数。

在第1部分中,我们讲解了如何使用debug对已有函数进行调试。我们首先创建了一个名为debugfunc的函数,其带有两个输入参数:x和y。然后,我们对函数debugfunc使用debug。这里,我们把函数debug用到名称、参数或者函数上。在这里,不论任何时候调用debugfunc,我们的R控制台都通过每行开始的Browse弹窗进入浏览器模式。

浏览器模式允许我们逐步执行函数运算。我们将一些在调试过程中可能用到的单字母命令归纳为下表。

在下面的操作中,我们首先使用help来列出所有的命令。然后我们键入n来进入下一行。接着,我们键入objects和ls列出所有当前的对象。现在,我们可键入变量名来找出每个对象当前的值。最后我们键入Q跳出调试模式,并使用undebug取消对函数的标识。

2.其次,在行数左边设置断点,如图2的所示。

3.然后,保存代码文件并单击Source激活调试过程,如图3所示。

4.激活函数的时候,你的R控制台会进入Browse模式,如图4所示。

现在你可以使用命令行或者Debug下拉菜单来调试函数,如图5所示。

时间: 2024-08-01 05:38:32

《数据科学:R语言实现》——1.11 调试函数的相关文章

《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一一2.3 数据清洗和变量格式化

2.3 数据清洗和变量格式化 本节我们考虑如何将特征矩阵列表menResMat转换为合适的格式以便于数据分析.目前,这些数据值都是字符型,这对于诸如找到参赛者年龄的中位数这样的数据分析是无益的.但是,我们可以利用as.numeric()函数很容易地将年龄转换为数值型.我们需要将整个矩阵都转换为数值型矩阵吗?事实并非如此,比如将参赛者的名字转换为数值型就毫无意义.为此,我们需要创建一个可以允许拥有不同类型变量的数据框.现在我们有6个变量:参赛者姓名.居住地.年龄以及3种类型的时间.正如刚才所说,我

《R的极客理想——高级开发篇 A》一一第1章 R语言知识体系和数学函数

第1章 R语言知识体系和数学函数 本章为全书开篇,主要介绍了R语言知识体系结构及学习资料.利用R语言实现数学计算和统计计算以及连续型分布函数的可视化,可帮助读者全面理解R语言,并利用R语言快速地处理基础学科的计算问题.

2013年数据分析、数据挖掘、数据科学使用语言排行榜

 最受欢迎的语言仍然是R( KDnuggets 读者中有61%用户在用),python(39%),SQL(37%).SAS仍然稳定在20%之间.增长最快是:Pig/Hive/Hadoop为基础的语言.R.SQL,同时perl, C/C++, 与Unix 在下降.同时我们发现,R与python用户存在一定的重叠. 之前的KDnuggets的调查主要是关注:统计与分析软件,但有时候一个全面与强大的编程语言是需要的.这也是最近一次的KDnuggets调查关注的重点,我们咨询: 在2013年中,什么样的

手把手 | 教你爬下100部电影数据:R语言网页爬取入门指南

前言 网页上的数据和信息正在呈指数级增长.如今我们都使用谷歌作为知识的首要来源--无论是寻找对某地的评论还是了解新的术语.所有这些信息都已经可以从网上轻而易举地获得. 网络中可用数据的增多为数据科学家开辟了可能性的新天地.我非常相信网页爬取是任何一个数据科学家的必备技能.在如今的世界里,我们所需的数据都在互联网上,使用它们唯一受限的是我们对数据的获取能力.有了本文的帮助,您定会克服这个困难. 网上大多数的可用数据并不容易获取.它们以非结构化的形式(HTML格式)表示,并且不能下载.因此,这便需要

《Python数据科学指南》——1.12 在函数中嵌入函数

1.12 在函数中嵌入函数 这一节将解释函数式编程里的另一个概念:在一个函数中定义另一个函数. 1.12.1 准备工作 我们写一个简单的函数,它返回输入列表的数值的平方和. 1.12.2 操作方法 我们定义一个简单的函数,用它演示在函数中嵌入函数. # 1.定义一个函数,返回给定输入数值的平方和 def sum_square(x): def square_input(x): return x*x return sum([square_input(x1) for x1 in x]) # 2.输出结

《Python数据科学指南》——1.13 将函数作为参数传递

1.13 将函数作为参数传递 Python支持高阶函数功能:将一个函数作为另一个函数的参数传递. 1.13.1 准备工作 我们将前面一个例子中的函数square_input ()重写,以此演示一个函数是如何被作为另一个函数的参数进行传递. 1.13.2 操作方法 请看如何将一个函数作为另一个函数的参数进行传递. from math import log def square_input(x): return x*x # 1.定义一个类函数,它将另外一个函数作为输入 # 并将它应用到给定的输入序列

《数据科学实战手册(R+Python)》一第2章 汽车数据的可视化分析(R)

第2章 汽车数据的可视化分析(R) 数据科学实战手册(R+Python) 本章涵盖如下内容. 获取汽车燃料效率数据 为了你的第一个项目准备好R 将汽车燃料效率数据导入R 探索和描述燃料效率数据 进一步分析汽车燃料效率数据 研究汽车的产量以及车型 简介 本书介绍的第一个项目是分析汽车燃料经济数据.我们首先用R对该数据集进行分析.R常常被称为数据科学通用语言,因为它是目前最流行的统计和数据分析语言.在本书前半部分的各个章节中,你将会看到R在数据处理.建模.可视化方面的过人之处,并开发一些有用的脚本,

为何Python攀上数据科学巅峰?调查显示Python超越R

根据KDnuggets 2017年最新调查,Python生态系统已经超过了R,成为了数据分析.数据科学与机器学习的第一大语言.本文对KDnuggets的此项调查结果做了介绍,并补充了一篇文章讲解为何Python能成为数据科学领域最受欢迎的语言. Python vs R:2017 年调查结果 近日,KDnuggets 发起了一项调查,问题是: 你在 2016 年到现在是否使用过 R 语言.Python(以及它们的封装包),或是其他用于数据分析.数据科学与机器学习的工具? 预料之内的是,Python

一份语言选择指南带你玩数据科学,选出你心中支持的语言

更多深度文章,请关注:https://yq.aliyun.com/cloud 随着大数据时代的到来,网络每天会产生大量的数据,一些行业会对这些数据进行分析并协助企业不断地发展新业务.创建运营模式等,比如电子商务.推荐系统等.那么谁对这些大数据进行分析呢?对应的工作领域是数据科学(Data Science),该领域需要结合先进的统计知识.定量分析能力和编程能力.涉及到编程,大家都会面临一个问题,有太多的编程语言可供选择,那么哪些编程语言适合数据科学领域呢?虽然没有正确答案,但想成为一名成功的数据科

R语言为Hadoop集群数据统计分析带来革命性变化

R作为开源的数据统计分析语言正潜移默化的在企业中扩大自己的影响力.特有的扩展插件可提供免费扩展,并且允许R语言引擎运行在Hadoop集群之上. R语言是主要用于统计分析.绘图的语言和操作环境.R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发.(也因此称为R)现在由"R开发核心团队"负责开发.R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用 S语言编写的代码都可以不作修改的在R环境下运行.R的语法是来自Scheme. R的源