我有一个大的R程序,在一个函数中间的某个地方,我放了一个browser()
来调试相同的程序。但是,这种调试很痛苦,因为即使是标准的 R 函数,如substr
、regexpr
、nchar
都在调试,但我对此不感兴趣。请建议如何停止此操作并仅调试我在函数中编写的内容,而不是标准 R 函数。
假设你有一个字符串
S = "ABCD,12345"
我想要结果 12345,它是字符","之后的 S 子字符串。 我使用以下命令:
substr(S, regexpr(",", S) + 1, nchar(S))
命令是正确的,并且做得很好。但是哪个调试,主要功能,这个substr
,regexpr
,nchar
也得到了调试,这对我来说是浪费时间。
似乎您正在单步执行每个函数,通常是通过使用 s 命令。在调试模式下使用 n 命令应该运行每个嵌套函数,而无需单步执行该函数。请注意,如果使用 s 一次,则每个运行命令(通常只需单击 enter(将使用 s,直到使用另一个命令。
R 还有一些更复杂的调试工具。在 Hadley 的免费在线书籍 Advanced R 中,有一章是关于 R 调试的(第 22 章(。有关在 R 中进行调试的更深入知识,我强烈推荐本章。