Related: #4113, #3992
I find this a bit confusing:
setnafill(iris, fill=0)
# Error in setnafill(iris, fill = 0): 'x' argument must be numeric type, or list/data.table of numeric types
It would be better to be more specific -- it failed because the input has some non-numeric columns (and possibly name the problem columns, or at least one of them).