在R中运行和调试脚本和函数

eli*_*isa 16 debugging r

我是新手.我有一个R文件,包含一个带参数的函数.我想执行以下两个不同的操作:

  1. 运行该功能
  2. 一步一步执行并调试它

假设在R文件中有一个简单的函数

"exampleSum"<-
function(x,y){
 x<-x+1
 return(x+y)
}
Run Code Online (Sandbox Code Playgroud)

你能告诉我哪些是R命令来执行我的要求.

car*_*cal 27

你必须打电话debug(<functionName>)来逐步完成一个功能.下次调用该函数时,将自动打开所谓的浏览器环境并列出函数的内容.按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
Run Code Online (Sandbox Code Playgroud)

最后一次调用undebug(<functionName>)从函数中删除调试标志,以便下次调用时它将正常运行.

  • 当您只需要一次性检查时,`debugonce`也很有帮助. (9认同)
  • 如果你想运行接下来的100行怎么办? (4认同)

Rom*_*rik 1

您首先需要将该函数加载到 R 的工作区中(通过将其复制/粘贴到 R 中)。然后,您可以使用 运行它exampleSum(x = 1, y = 1)。您可以通过在 R 控制台中输入来检查它是否存在exampleSum。您还可以使用 运行脚本文件source()。用法示例是source("d:/R/my_script.R").

我认为至少阅读R 简介会让您受益匪浅。还有大量 R 初学者可以阅读的书籍来解释 R 的基础知识。等效信息可在上述 AI2R 和互联网上流传的免费材料中找到。搜索R 帮助列表也...很有帮助。