我在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"
我在这里缺少什么或者我没有看到的文档?
答案 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)
希望这有帮助!