Skip to content
Prev 206297 / 398506 Next

Logical function

Here's one way :

ds <- data.frame( st = runif(100), s0=runif(100), 
s1=runif(100),s2=runif(100),mp=runif(100))
ds <- within( ds, {
	n1 <- 1*( st>0.38 )
	
	n2 <- numeric( length( st ) )
	n2[ is.na(st) | st <= 0.38 ] <- .25
	n2[ s0 == mp ] <- .25
	n2[ s2 == mp ] <- .5
	n2[ mp == 1  ] <- .75
} )

See ?within for why/how this works.

Romain
On 01/14/2010 11:10 AM, Olivier Deckmyn wrote: