>>>>> Kurt Hornik writes: >>>>> Steve Martin writes: >> 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.)
> Right. >> 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 > Indeed. I'll look into adding the match.fun ... Changed now with c80873. Best -k > Best > -k >>> 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 > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel