R返回语句上的调试错误

时间:2017-12-14 16:01:19

标签: r

我在R中编写一个比较字符串的正则表达式函数,但它失败了。当我尝试调试它以查看它失败的位置时,R似乎将返回字符串内容解释为函数。我不确定为什么会出现这种情况,但我为可重现性创建了最简单的问题版本。

testfun<-function(data){
 if(data=='test')
  return('success')
 else return ('failure')
}

testdata<-'test'

testfun(testdata) 
[1] "success"

^所以这很好。当我想在这样的函数上运行debug for failure(在thistest情况下不存在,但在我的实际函数中),我收到以下输出:

debug(testfun(testdata))
Error in debug(testfun(testdata)) : could not find function "success"

我在这里缺少什么或者我没有看到的文档?

2 个答案:

答案 0 :(得分:0)

从这看起来你正试图输出成功或失败的字符串值? 因此,您是否应该使用双引号而不是单引号?

取自此处的例子; https://www.programiz.com/r-programming/return-function

答案 1 :(得分:0)

Debug要求用户首先在函数名称上调用它。然后使用参数执行该函数以进入调试模式。如果您不希望它在每次执行该函数时进入调试,请使用debugonce。例如:

testfun<-function(data){
 if(data=='test')
  return('success')
 else return ('failure')
}

testdata<-'test'

debugonce(testfun)
testfun(testdata)

希望这有帮助!