Question

I can't get past the feeling that I am missing something obvious. Is there a clearer or more idiomatic way to do what the following function does?

closest.preceding <- function(candidates, limit) {
    # return the value in candidates that is closest to but less than the limit
    return(limit - min(limit-candidates[candidates < limit]))
}

Thanks for any insight.

Était-ce utile?

La solution

You could do:

max(candidates[candidates<limit])

Which first filters out just those candidates that are (strictly) less than the limit, and then takes the max of those (which much be the closest).

I'm sure there are other ways too.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top