[R] simplify if statement in R ?
    Duncan Murdoch 
    murdoch.duncan at gmail.com
       
    Tue Jul 20 20:30:34 CEST 2010
    
    
  
On 20/07/2010 2:11 PM, Jim Maas wrote:
> I found a form of the if statement that works but it is very long.  I'm 
> attempting to check the value of of two different variables to see if 
> they evaluate to either of two different values, which will result in a 
> division by 0 in the final equation.  This first if statement works for me
> _______
>
>   if ((x0.trial01 == 0.0)||(x0.trial01 == npt01)||(x1.trial01 == 
> 0.0)||(x1.trial01 == npt01))
>          {
>              x0.trial01.in <- x0.trial01 + 0.5
>              x1.trial01.in <- x1.trial01 + 0.5
>              npt01.in <- npt01 + 1.0
>          }
>          else
>          {
>              x0.trial01.in <- x0.trial01
>              x1.trial01.in <- x1.trial01
>              npt01.in <- npt01
>          }
> __________
>
> I've tried
> if ( ( x0.trial01 || x1.trial01) == ( 0.0 || npt01) )
>      ......
>
>
> but it doesn't seem to work correctly.  Is there a simpler way to check 
> two variables for two different valuables?
I would probably use your original one, formatted to make the repetition 
clear, e.g.
  if (  (x0.trial01 == 0.0)
      ||(x0.trial01 == npt01)
      ||(x1.trial01 == 0.0)
      ||(x1.trial01 == npt01))
but if you really want less repetition, you could go with this:
if ( length( intersect( c(x0.trial01, x1.trial01), c(0.0, npt01) ) ) > 0 )
Doesn't look clearer to me, but it fits on one line....
Duncan Murdoch
    
    
More information about the R-help
mailing list