Skip to content
Back to formatted view

Raw Message

Message-ID: <6547C252-80FC-4436-AC4C-9DB58344C002@comcast.net>
Date: 2012-02-05T22:35:31Z
From: David Winsemius
Subject: nested if else statements
In-Reply-To: <CAMMiRhzor-Xc8mqjQ=faA9+T0f4cjyBaO_HwPhUxXRqZwd7vXA@mail.gmail.com>

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