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

简介:

本节书摘来自华章计算机《数据科学:R语言实现》一书中的第1章,第1.11节,作者 丘祐玮(David Chiu),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.11 调试函数

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

准备工作

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

实现步骤

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

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

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

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

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

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

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

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

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

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

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

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

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

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

image

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

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

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

运行原理

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

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

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

image

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

image

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

image

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

image

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

image

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

image

相关文章
|
4天前
|
图形学
R语言其他相关函数(各函数解析含实例,可供查询)
R语言其他相关函数(各函数解析含实例,可供查询)
3 0
|
4天前
R语言绘图相关函数(含实例)
R语言绘图相关函数(含实例)
3 0
|
4天前
|
数据可视化
R语言用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据
R语言用非凸惩罚函数回归(SCAD、MCP)分析前列腺数据
|
4天前
|
数据可视化
R语言可视化渐近正态性、收敛性:大数定律、中心极限定理、经验累积分布函数
R语言可视化渐近正态性、收敛性:大数定律、中心极限定理、经验累积分布函数
|
4天前
|
算法 Windows
R语言广义二次跳跃、非线性跳跃扩散过程转移函数密度的估计及其应用
R语言广义二次跳跃、非线性跳跃扩散过程转移函数密度的估计及其应用
|
4天前
|
数据可视化
R语言广义相加(加性)模型(GAMs)与光滑函数可视化
R语言广义相加(加性)模型(GAMs)与光滑函数可视化
|
4天前
|
机器学习/深度学习 算法 数据可视化
R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类
R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类
|
4天前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
4天前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
4天前
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)

热门文章

最新文章