[R] nested if else statements

R. Michael Weylandt michael.weylandt at gmail.com
Sun Feb 5 23:38:19 CET 2012


Much easier: use ifelse (the vectorized function) instead as follows:

ifelse(A < 2, ifelse(A < 1, 2, 1), 0)

But you could probably just do 2 - A in this case which would be easiest.

Michael

On Sun, Feb 5, 2012 at 5:30 PM, Philip Robinson
<philip.c.robinson at gmail.com> 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 <- 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
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org 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