Debugging 在R中运行和调试脚本和函数
我是个新手。我有一个R文件,包含一个带参数的函数。 我想执行以下两个不同的操作:Debugging 在R中运行和调试脚本和函数,debugging,r,Debugging,R,我是个新手。我有一个R文件,包含一个带参数的函数。 我想执行以下两个不同的操作: 运行函数 一步一步地执行并调试它 假设在R文件中有一个简单的函数 "exampleSum"<- function(x,y){ x<-x+1 return(x+y) } “exampleSum”首先需要将函数加载到R的工作区(通过复制/粘贴到R)。然后,您可以使用exampleSum(x=1,y=1)运行它。您可以通过在R控制台中键入exampleSum来检查它是否存在。您还可以使用source()
"exampleSum"<-
function(x,y){
x<-x+1
return(x+y)
}
“exampleSum”首先需要将函数加载到R的工作区(通过复制/粘贴到R)。然后,您可以使用exampleSum(x=1,y=1)
运行它。您可以通过在R控制台中键入exampleSum
来检查它是否存在。您还可以使用source()
运行脚本文件。用法示例为源代码(“d:/R/my_script.R”)
我想至少通过阅读你会受益匪浅。对于R初学者来说,也有大量的书可以用来解释基础知识。上述AI2R和互联网上的免费资料中提供了同等信息。搜索列表也是。。。有用。您必须调用debug()
来逐步完成函数。下次调用函数时,将自动打开所谓的浏览器环境并列出函数的内容。按Return键或使用n
命令(下一步)执行一个步骤。单个步骤是在运行之前列出的一个块(通常是一行)。要将功能运行到底,请按c
(继续)。在浏览器模式下,可以使用ls()
,str()
,class()
。。。检查物品。您的示例如下所示:
> exampleSum <- function(x, y) {
+ x <- x+1
+ return(x+y)
+ }
> debug(exampleSum) # set debug flag
> exampleSum(1, 2) # run function in browser mode
debugging in: exampleSum(1, 2)
debug: {
x <- x + 1
return(x + y)
}
Browse[2]> n # next step
debug: x <- x + 1
Browse[2]> ls() # show objects
[1] "x" "y"
Browse[2]> x # show x
[1] 1
Browse[2]> c # run function to end
exiting from: exampleSum(1, 2)
[1] 4
> undebug(exampleSum) # remove debug flag
>exampleSum exampleSum(1,2)#在浏览器模式下运行函数
在中调试:exampleSum(1,2)
调试:{
x n#下一步
调试:x ls()#显示对象
[1] “x”“y”
浏览[2]>x#显示x
[1] 1
浏览[2]>c#运行函数结束
退出:exampleSum(1,2)
[1] 4
>undebug(exampleSum)#删除调试标志
对undebug()的最后一次调用
从函数中删除调试标志,以便下次调用时它将正常运行。debugonce
在您只需进行一次检查时也很有用。如果要运行接下来的100行怎么办?别忘了仔细阅读?debug
和?browser
的帮助页面。