[R] Lowest year among several variables
Petr Savicky
savicky at cs.cas.cz
Tue May 8 22:06:09 CEST 2012
On Tue, May 08, 2012 at 02:50:47PM -0500, Jeff wrote:
>
> ...still new to R and trying to figure this one out.
>
> I have a number of variables x, y, z, etc. in a data frame.
>
> Each contains a 2 digit year (e.g., 80, 81, 82) representing the
> first year that something occurred. Each variable represents a
> different type of event.
>
> If the event did not occur at all, the variable has the value 0 (zero).
>
> I need to create a new variable having the value of the earliest year
> among the set of variables.
>
> If none of the events occurred (all variables = 0), then the new
> variable should also be zero.
>
> e.g.,
>
> Original
> x y z
> 80 82 83
> 85 76 90
> 90 0 86
> 0 0 0
>
>
> New variable
> 80
> 76
> 86
> 0
Hi.
If all years are at most 99, then try the following
dat <- data.frame(x=c(80, 85, 90, 0), y=c(82, 76, 0, 0), z=c(83, 90, 86, 0))
dat[dat == 0] <- Inf
out <- pmin(dat$x, dat$y, dat$z)
out[out == Inf] <- 0
out
[1] 80 76 86 0
Hope this helps.
Petr Savicky.
More information about the R-help
mailing list