I had a look at the source code, and your prediction is right. There is line at the beginning of the naiveBayes function : Yname <- deparse(substitute(y)) When I manually edited it to list(quote(y)), it works.