by should use match.fun
I noticed that, unlike similar functions, 'by' does not use match.fun, e.g.
by(iris, iris$Species, "summary")
Error in FUN(X[[1]], ...) : couldn't find function "FUN" The 'by' code should have an initial line of: FUN <- match.fun(FUN)