The traceback()
function is a must when you have an error somewhere and do not understand it readily. It will print a trace of the stack, very helpful as R is not very verbose by default.
Then setting options(error=recover)
will allow you to "enter" into the function raising the error and try and understand what happens exactly, as if you had full control over it and could put a browser()
in it.
These three functions can really help debugging your code.