Hello, All of the funprog functions except Position() use match.fun() early in the body of the function. (Filter() seems to rely on lapply() for this, but the effect is the same.) In most cases this isn't a problem, but I can't see why Position() shouldn't look something like
Position2 <- function(f, x, right = FALSE, nomatch = NA_integer_) { f <- match.fun(f) # the only difference from Position() ind <- if (right) rev(seq_along(x)) else seq_along(x) for (i in ind) { if (f(x[[i]])) return(i) } nomatch } This would make it consistent with the other funprog functions, and would mean that Find() and Position() give the same result when expected > equals3 <- function(x) x == 3 > Position("equals3", 1:5) Error in f(x[[i]]) : could not find function "f" > Position2("equals3", 1:5) [1] 3 > Find("equals3", 1:5) [1] 3 Thanks, Steve ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel