[R] finding the minimum positive value of some data

Gabor Grothendieck ggrothendieck at gmail.com
Tue Sep 11 02:29:09 CEST 2007


Here are some solutions each of which
1. has only one line,
2. x only occurs once so you can just plug in a complex expression
3. no temporary variables are left

min(sapply(x, function(z) if (z > 0) z else Inf))

(function(z) min(ifelse(z > 0, z, Inf))) (x)

with(list(z = x), min(z[z > 0]))

local({ z <- x; min(z[z > 0]) })

On 9/10/07, dxc13 <dxc13 at health.state.ny.us> wrote:
>
> useRs,
>
> I am looking to find the minimum positive value of some data I have.
> Currently, I am able to find the minimum of data after I apply some other
> functions to it:
>
> > x
>  [1]  1  0  1  2  3  3  4  5  5  5  6  7  8  8  9  9 10 10
>
> > sort(x)
>  [1]  0  1  1  2  3  3  4  5  5  5  6  7  8  8  9  9 10 10
>
> > diff(sort(x))
>  [1] 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0
>
> > min(diff(sort(x)))
> [1] 0
>
> The minimum is given as zero, which is clearly true, but I am interested in
> only the positive minimum, which is 1.  Can I find this by using only 1 line
> of code, like I have above? Thanks!
>
> dxc13
> --
> View this message in context: http://www.nabble.com/finding-the-minimum-positive-value-of-some-data-tf4417250.html#a12599319
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list