[R] nested if else statements

David Winsemius dwinsemius at comcast.net
Sun Feb 5 23:35:31 CET 2012


On Feb 5, 2012, at 5:30 PM, Philip Robinson wrote:

> I have a vector of 2,1,0 I want to change to 0,1,2 respectively (the  
> data
> is allele dosages)
>
> I have tried multiple nested if/else statements and looked at the ? 
> if help
> and cannot work out what is wrong, other people have posted code  
> which is
> identical and they state works.
>
> Any help would be greatly appreciated.
>
>> A[1:20]
> [1] 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0

B <-  2L - A

Or did I miss something in the problem statement?


>
>> B <- rep(NA,length(A))
>
>> for (i in 1:length(A)){ if(A[i]==2){B[i] <- 0} else
> +                         if(A[i]==0){B[i] <- 2} else
> +                         if(A[i]==1){B[i] <- 1}}
>
> Error in if (A[i] == 2) { : missing value where TRUE/FALSE needed

You should look at ?if and ?ifelse more closely.

-- 

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list