This function is mostly useful within a tryCatch clause Adapted from code in tools:::.try_quietly as suggested by Kurt Hornik in the following message https://stat.ethz.ch/pipermail/r-devel/2005-September/034546.html
eval.with.error.trace(expr, max.lines = 4, remove.early.calls = 0,
error.string.fun = default.error.string.fun)the expression to be evaluated
as in traceback()
an integer specifying a number of calls that won't be shown in the trace.
a function(e,tb) that takes as arguments an error e and a string vector tb of the stack trace resulting from a call to calls.to.trace() and returns a string with the extended error message
If no error occurs the value of expr, otherwise an error is thrown with an error message that contains the stack trace of the error.